怎么配置 Redis 慢查询日志 slowlog 定位性能瓶颈

文章导读
配置 Redis 慢查询日志主要通过设置 `slowlog-log-slower-than` 阈值和 `slowlog-max-len` 长度来实现,适用于生产环境定位高延迟命令。风险在于阈值过低会增加内存占用和 CPU 开销,建议根据业务延迟容忍度动态调整。
📋 目录
  1. A 命令速用版
  2. B 为什么会这样
  3. C 分步处理
  4. D 怎么验证是否生效
  5. E 常见坑
  6. F 常见问题
  7. G 参考来源
A A

配置 Redis 慢查询日志主要通过设置 `slowlog-log-slower-than` 阈值和 `slowlog-max-len` 长度来实现,适用于生产环境定位高延迟命令。风险在于阈值过低会增加内存占用和 CPU 开销,建议根据业务延迟容忍度动态调整。

先说结论:慢查询日志是定位 Redis 命令执行耗时瓶颈的首选工具,但仅记录服务端执行时间,不包含网络传输耗时。

  • 先定位:通过 `slowlog-log-slower-than` 设置微秒级阈值,捕获超过预期的命令。
  • 先做:使用 `SLOWLOG GET` 分析高频耗时命令类型,如 KEYS 或大对象操作。
  • 再验证:优化命令或数据结构后,观察慢日志数量是否显著下降。

命令速用版

以下命令可直接在 redis-cli 中执行,用于查看和调整慢查询配置。

# 查看当前慢查询配置
CONFIG GET slowlog-log-slower-than
CONFIG GET slowlog-max-len

# 动态调整阈值为 5 毫秒(5000 微秒)
CONFIG SET slowlog-log-slower-than 5000

# 获取最近 10 条慢查询记录
SLOWLOG GET 10

# 清空慢查询日志
SLOWLOG RESET

为什么会这样

慢查询日志记录的是命令在服务端的实际执行时间,不包含网络往返和排队等待时间。Redis 将执行时间超过设定阈值的命令存入内存列表,帮助开发者区分是命令本身复杂还是网络延迟导致的问题。如果客户端感觉慢但慢日志为空,问题通常出在网络链路或客户端处理逻辑。

怎么配置 Redis 慢查询日志 slowlog 定位性能瓶颈

分步处理

按以下步骤配置并分析慢查询日志,确保操作可回滚且不影响线上业务。

1. 检查当前配置
使用 `CONFIG GET slowlog-log-slower-than` 确认当前阈值。默认值为 10000 微秒(10 毫秒),生产环境可根据业务敏感度调整为 1000 微秒(1 毫秒)至 5000 微秒。

2. 设置日志长度限制
通过 `CONFIG SET slowlog-max-len 1000` 限制日志条目数量,防止内存占用过高。建议将配置写入 redis.conf 文件,避免重启后失效。

3. 获取并分析日志
执行 `SLOWLOG GET 10` 获取记录,每条日志包含唯一 ID、耗时、命令详情和时间戳。重点关注高频出现的命令,如 `KEYS *`、`HGETALL` 大哈希表或复杂 Lua 脚本。

怎么配置 Redis 慢查询日志 slowlog 定位性能瓶颈

4. 实施优化
针对识别出的慢命令,改用 `SCAN` 替代 `KEYS`,或对大 Value 进行拆分。对于持久化引起的阻塞,检查 AOF 重写或 RDB 保存期间的日志激增情况。

怎么验证是否生效

优化后再次执行 `SLOWLOG GET`,确认同类慢命令不再频繁出现。结合 Prometheus 或 Grafana 监控慢日志数量趋势,若阈值调整后日志数量突增,说明系统存在潜在性能风险。同时使用 `redis-cli `--latency`` 检测网络延迟,排除非服务端问题。

常见坑

配置阈值过低(如 0)会记录所有命令,导致内存飙升和性能下降,生产环境严禁使用。慢查询日志存储在内存中,重启 Redis 会丢失,需定期归档分析。集群环境下需确保分析覆盖所有节点,避免遗漏单点瓶颈。

怎么配置 Redis 慢查询日志 slowlog 定位性能瓶颈

常见问题

慢查询日志默认阈值是多少?

默认阈值为 10000 微秒(10 毫秒),超过该耗时的命令会被记录。

开启慢查询会影响 Redis 性能吗?

轻微影响,记录日志本身开销很小,但阈值设置过低导致记录过多命令会增加 CPU 和内存负担。

客户端慢但慢日志为空是什么原因?

可能是网络延迟、客户端处理逻辑耗时或命令排队等待,而非命令执行本身慢。

参考来源

  • Redis 慢查询日志调优方法
  • Redis 慢查询日志分析与性能调优
  • Redis 慢查询监控与性能调优实践
  • Redis 从入门到精通:慢查询日志
  • Redis 慢查询调优与日志监控技巧
  • 2026 年 Redis 慢查询排查技巧盘点