首页/数据/Redis 进阶速查/SLOWLOG GET:读取慢查询日志
性能与排障129 条

SLOWLOG GET:读取慢查询日志

SLOWLOG GET 返回超过阈值的命令记录,每条含执行耗时与参数;定位慢命令的常用入口,注意日志只存命令不含 keyspace 副作用。

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

SLOWLOG GET 是什么

SLOWLOG GET 返回执行时间超过阈值的命令记录,每条包含唯一编号、发生时间戳、执行耗时(微秒)、命令与参数,以及发起命令的连接信息。它是定位慢命令最直接的入口,但记录的是命令本身,不含它对键空间造成的副作用,也不含网络往返与排队时间。

基本信息

命令SLOWLOG GET [count]
耗时单位微秒(μs)
保留条数由 slowlog-max-len 控制,默认 128 条
配套命令SLOWLOG LEN / SLOWLOG RESET / SLOWLOG HELP
记录范围单条记录最多保留 32 个参数,超长参数会被截断

典型使用场景

  • 延迟毛刺定位:延迟上升时段先拉一批慢日志,确认是哪条命令在拖时间
  • 上线回归:新版本发布后对比慢日志条目数量与类型的变化
  • 大键治理:慢日志里反复出现的集合类命令往往指向大键操作
  • 批量任务排查:定时任务或数据导入期间慢日志会明显增多
  • 容量评审:把慢日志里的命令与 commandstats 的调用量结合,决定优化顺序

读取与清理

读取与清理
redis-cli SLOWLOG GET 10          # 看最近 10 条慢命令
redis-cli SLOWLOG LEN             # 当前缓冲里有多少条
redis-cli SLOWLOG RESET           # 清空记录,便于观察新窗口
redis-cli INFO commandstats | grep -E 'cmdstat_lrange'  # 结合命令统计看调用量
redis-cli CONFIG GET slowlog-log-slower-than  # 确认记录阈值
redis-cli CONFIG GET slowlog-max-len          # 确认保留条数

输出逐列读法

字段含义读法
id每次记录分配的自增编号编号越大越新,RESET 后重新计数
timestamp命令执行时的 Unix 时间戳用来和业务监控时间轴对齐
duration服务端执行耗时(微秒)不含网络往返与排队等待
args命令名与参数列表导出或分享前必须脱敏
client_address发起命令的连接地址定位到具体应用或连接池
client_name连接自称的名字(CLIENT SETNAME)命名规范的应用可一眼看出归属
duration 只覆盖服务端执行环节:客户端看到的总体延迟还包含网络往返与主线程排队,两者差距大时说明问题不在命令本身。
慢日志里的参数可能包含用户标识、手机号或业务数据,导出、截图、贴进工单之前务必脱敏。

易错点

  • 把客户端观测到的总延迟等同于 duration,误判网络与排队环节
  • 分享慢日志不脱敏,业务数据随排障记录一起外流
  • 只清空慢日志不记录基线,问题复现时缺少对照数据
  • 保留条数很小又调高了阈值,故障窗口的记录被覆盖掉找不回来

数据来源与参考

  • Redis 官方文档:SLOWLOG 命令说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌