*Redis LATENCY LATEST 命令
LATENCY LATEST 用于返回所有被监控事件的最新延迟采样信息及历史最大延迟。
*语法
LATENCY LATEST
*参数说明
该命令无参数。
*返回值
- Array:每个被监控事件返回一个包含四个元素的数组
[event_name, timestamp, latest_latency_ms, max_latency_ms] - Empty Array:当前没有任何被监控的事件时返回空数组
*时间复杂度
O(1)
*
*示例
*查看所有最新延迟
> LATENCY LATEST
1) 1) "command"
2) (integer) 1717462800
3) (integer) 3
4) (integer) 120
2) 1) "fork"
2) (integer) 1717461000
3) (integer) 250
4) (integer) 500
3) 1) "aof-write"
2) (integer) 1717462805
3) (integer) 12
4) (integer) 45
*无任何监控事件
> LATENCY LATEST
(empty array)
*仅有一个事件被监控
> LATENCY LATEST
1) 1) "command"
2) (integer) 1717462800
3) (integer) 1
4) (integer) 10
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| ERR unknown subcommand | 子命令拼写错误 | 确认命令为 LATENCY LATEST |
| (empty array) | 尚未触发任何可监控事件 | 等待系统运行一段时间后再查询 |
*最佳实践
- 作为 Redis 延迟监控的入口命令,优先使用它了解全貌
- 关注
max_latency_ms列,快速识别历史上最慢的操作类型 - 建议将其集成到监控告警系统,对
latest_latency_ms或max_latency_ms设置阈值 - 结合 LATENCY RESET 定期清理旧的最大值,避免历史峰值干扰当前判断
*FAQ
Q1: maxlatencyms 会一直增长吗?
A: 是的,自 Redis 启动或上次 LATENCY RESET 以来,max_latency_ms 会持续记录遇到的最大值,直到被重置。
Q2: 如何只查看某一个事件的最新延迟?
A: LATENCY LATEST 返回所有事件,若只想看某一个,可配合 LATENCY HISTORY event 查看该事件的详细历史。
Q3: 为什么某些事件返回的 latestlatencyms 和 maxlatencyms 相同? A: 说明该事件只被采样过一次,或者自上次重置后仅发生了一次。