LATENCY LATEST 事件级延迟快照
LATENCY LATEST 按事件类别列出最近一次延迟尖峰:每条记录包含事件名称、最新尖峰的时间戳、最新尖峰的耗时与历史最大值,单位是毫秒。事件类别覆盖命令执行、fork、过期周期、淘汰周期等,是延迟归因的起点——先按类别分流,命令类的事件往命令层面查,fork 类的事件往持久化查。注意它只有在 latency-monitor-threshold 设为非零值时才记录事件,默认值 0 表示监控关闭。
基本信息
| 命令 | LATENCY LATEST |
|---|---|
| 返回字段 | 事件名 / 时间戳 / 最新值 / 历史最大值 |
| 单位 | 毫秒 |
| 示例类别 | command、fork、expire-cycle、eviction-cycle |
| 前置条件 | latency-monitor-threshold 大于 0 |
| 配套命令 | LATENCY HISTORY、LATENCY RESET、LATENCY DOCTOR |
| 生效范围 | 整个实例 |
典型使用场景
- 业务反馈偶发卡顿,先看是命令层还是后台任务造成
- 周期性的延迟尖峰与持久化时间窗对照,验证 fork 影响
- 开启延迟监控前确定阈值,避免记录过多或过少
- 故障复盘时回看事件类别与时间戳,还原时间线
- 排查过期或淘汰周期是否参与了延迟抖动
- 为延迟告警选择合适的事件类别与阈值
- 刚上线的实例做延迟基线采集,方便日后对比
- 验证某项调优(如异步释放)是否真的消除了尖峰
开启监控与读取
开启监控与读取
redis-cli CONFIG GET latency-monitor-threshold # 0 表示未开启监控
redis-cli CONFIG SET latency-monitor-threshold 100 # 阈值 100 毫秒
redis-cli LATENCY LATEST # 各类事件的最新尖峰
redis-cli LATENCY HISTORY fork # 某类事件的历史采样
redis-cli LATENCY DOCTOR # 文字化建议
redis-cli LATENCY RESET # 清空记录,重新观察事件类别与排查方向
| 类别 | 含义 | 排查方向 |
|---|---|---|
| command | 命令执行耗时尖峰 | 慢命令与大键 |
| fork | 派生进程耗时 | 持久化配置与数据量 |
| expire-cycle | 过期回收周期 | TTL 分布与集中过期 |
| eviction-cycle | 淘汰周期 | 内存水位与淘汰策略 |
历史最大值不一定是当前问题:先看时间戳,尖峰可能发生在很久以前。
监控阈值按实例延迟目标设置,设得过低会记录大量无意义的尖峰,设得过高则会漏掉真实问题。
事件记录的粒度是毫秒级,微秒级抖动看不到,这类细节要靠命令级的百分位指标补充。