*Redis SLOWLOG LEN 命令

SLOWLOG LEN 返回当前慢查询日志的条目数量。


*语法

SLOWLOG LEN

*参数说明

SLOWLOG LEN 无参数。


*返回值

  • Integer:当前慢查询日志中的条目数量
  • 0:慢查询日志为空

*时间复杂度

O(1)

*

*示例

*查看日志长度

> SLOWLOG LEN
(integer) 5

*空日志

> SLOWLOG LEN
(integer) 0

*结合 GET 使用

> SLOWLOG LEN
(integer) 100
> SLOWLOG GET 10
1) 1) (integer) 105
   2) (integer) 1717483200
   3) (integer) 15000
   4) 1) "KEYS"
      2) "*"
   5) "127.0.0.1:54321"
   6) ""
...

*常见错误

错误 原因 解决
ERR wrong number of arguments 传入了多余的参数 SLOWLOG LEN 不需要参数

*最佳实践

  • 监控 SLOWLOG LEN 值,当日志数量接近 slowlog-max-len 时,说明日志产生频繁
  • 定期检查日志长度,结合 SLOWLOG GET 分析性能问题
  • 在自动化监控脚本中使用,当日志长度突增时触发告警
  • 日志长度达到上限后,新日志会覆盖最旧的日志(FIFO)

*FAQ

Q1: SLOWLOG LEN 返回的最大值是多少? A: 返回值不会超过 slowlog-max-len 配置值,默认最大为 128。

Q2: SLOWLOG LEN 和 SLOWLOG GET 的区别? A: SLOWLOG LEN 仅返回日志数量(O(1)),SLOWLOG GET 返回日志内容(O(N))。需要快速检查时优先用 LEN。

Q3: 日志长度会自己减少吗? A: 不会自动减少,只有新日志覆盖旧日志时才会减少,或通过 SLOWLOG RESET 清空。