首页/数据/Redis 进阶速查/LATENCY HISTORY 追踪单个事件
性能与排障129 条

LATENCY HISTORY 追踪单个事件

LATENCY HISTORY event 返回指定事件类别的历史尖峰序列,用于观察延迟问题的时间分布与是否周期性。

Redis 进阶速查数据更新于 2026-10-13

LATENCY HISTORY 是什么

LATENCY HISTORY 事件名 返回该类延迟事件的历史尖峰序列,每条包含事件类别、发生时间戳和持续毫秒数。它是 Redis 内置延迟监控(由 latency-monitor-threshold 开启)的输出之一,用来判断延迟问题是零散偶发还是周期性复发。

基本信息

命令LATENCY HISTORY event
常见事件command、fork、expire-cycle、aof-fsync-always 等
前置条件latency-monitor-threshold 大于 0(默认 0 表示不监控)
同族命令LATENCY LATEST / RESET / DOCTOR / HELP
单位阈值与记录值均为毫秒

典型使用场景

  • 判断毛刺是否周期性:把时间戳与定时任务窗口对齐
  • 确认 fork 与持久化对延迟的影响程度
  • 修复前后对比同类事件的峰值变化
  • 为复盘提供按时间排序的客观证据
  • 与监控系统的告警时间交叉验证,排除误报

开启监控与取序列

开启监控与取序列
redis-cli CONFIG GET latency-monitor-threshold     # 默认 0:不记录任何事件
redis-cli CONFIG SET latency-monitor-threshold 50  # 单位毫秒,超过才记录
redis-cli LATENCY LATEST                           # 各事件最近一次尖峰
redis-cli LATENCY HISTORY command                  # 该事件的历史序列
redis-cli LATENCY HISTORY fork
redis-cli LATENCY RESET command                    # 分析完再清理该类事件

输出逐列读法

字段含义怎么读
event事件类别不同类别指向不同根因(命令、fork、过期等)
timestamp事件发生的绝对时间(秒)与业务窗口、定时任务、发布记录对照
duration持续时间(毫秒)明显高于设定阈值时才值得处理
序列条数保留的尖峰数量有限长期观察必须靠外部采集,不能只看内置序列
记录的是「超过阈值」的尖峰,不是全量采样:没有记录不等于没有慢请求,只说明没有超过阈值。
fork 与 AOF fsync 类事件和持久化配置强相关,分析时要同时看持久化相关配置与 INFO persistence。
阈值设得过低会让记录被频繁刷写、样本失去代表性;先按业务可接受延迟的倍数设定,再逐步收紧。

拿到序列后的分析步骤

  • 先看时间戳分布:是均匀散落还是集中在固定时刻
  • 再按事件类别分组,判断根因属于命令、持久化还是会话操作
  • 把尖峰时刻与定时任务、备份窗口、发布记录对齐
  • 对可疑窗口补充 LATENCY DOCTOR 与 INFO 的证据链
LATENCY DOCTOR 把原始事件翻译成结论式建议,适合在看完 HISTORY 之后使用:一个给时间线,一个给解读。

易错点

  • latency-monitor-threshold 还是 0 就去查 HISTORY,只能得到空结果
  • 序列被新事件覆盖前没有导出,历史证据有限
  • 只看 command 不看 fork,漏掉持久化引发的延迟
  • 把 HISTORY 当全量延迟统计,误判实际的 P99 水平

数据来源与参考

  • Redis 官方文档:LATENCY HISTORY 说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌