*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 清空。