*Redis LATENCY HISTORY 命令

LATENCY HISTORY 用于返回指定监控事件的原始延迟时间序列采样数据。


*语法

LATENCY HISTORY event

*参数说明

参数 类型 必填 说明
event String 事件名称,如 commandforkaof-write

*返回值

  • Array:时间序列采样数组,每个元素为 [UNIX 时间戳, 延迟毫秒数]
  • Error:事件不存在时返回错误

*时间复杂度

O(1)

*

*示例

*查看命令延迟历史

> LATENCY HISTORY command
1) 1) (integer) 1717462800
   2) (integer) 3
2) 1) (integer) 1717462801
   2) (integer) 5
3) 1) (integer) 1717462802
   2) (integer) 2

*查看 AOF 延迟历史

> LATENCY HISTORY aof-write
1) 1) (integer) 1717462800
   2) (integer) 12
2) 1) (integer) 1717462805
   2) (integer) 15

*查看 rdb-save 延迟历史

> LATENCY HISTORY rdb-save
1) 1) (integer) 1717461000
   2) (integer) 200
2) 1) (integer) 1717464600
   2) (integer) 180

*常见错误

错误 原因 解决
ERR No such latency event 指定的事件未被监控或不存在 先用 LATENCY LATEST 确认事件名称
ERR wrong number of arguments 未提供事件名称 补充需要查询的事件名称

*最佳实践

  • 配合 LATENCY GRAPH 可视化历史趋势
  • 用于故障排查时回溯具体时间点的延迟毛刺
  • 采样数据有限(默认 160 条),超出后会被覆盖,关键场景应外接监控
  • 注意:生产环境高频调用可能增加额外开销,建议仅排查时手动执行

*FAQ

Q1: LATENCY HISTORY 最多保留多少条记录? A: Redis 默认保留最近 160 条延迟采样记录,超出后采用 FIFO 方式覆盖旧数据。

Q2: 返回的时间戳是什么格式? A: 返回的是 UNIX 时间戳(秒级),表示该延迟采样被记录的时间点。

Q3: 所有事件都支持 LATENCY HISTORY 吗? A: 只有已被 Redis 内部监控的事件才支持,如 commandforkaof-writerdb-save 等系统级事件。