Redis性能监控依赖Monitor、Slowlog和Latency Monitor三大内置工具:Monitor实时捕获所有命令但影响性能,仅限短时诊断;Slowlog低开销记录超阈值慢命令,定位O(n)操作等瓶颈;Latency Monitor则监控fork、aof-write等系统级延迟毛刺,三者结合覆盖80%常见问题。

Redis 性能监控不是靠猜,而是靠工具抓关键信号。Monitor 和 Slowlog 是两个最轻量、最直接、无需额外部署的内置工具,一个看“发生了什么”,一个查“哪里慢了”,配合使用能快速定位 80% 的常见性能问题。
Monitor:实时命令流跟踪
Monitor 命令像一个“网络抓包器”,把所有到达 Redis 的命令原样广播出来,适合临时排查异常行为或验证客户端逻辑。
- 启动方式简单:
redis-cli monitor,回车后立即开始输出,每行包含时间戳、数据库编号、客户端地址和完整命令(含参数) - 注意它会带来明显性能损耗——压测显示吞吐量可能下降 30% 以上,**切勿长期运行在生产环境**,仅用于短时诊断
- 典型适用场景:确认某条业务请求是否真的发到了 Redis;发现意外的
KEYS *或大体积GET;验证 AOF 写入是否被阻塞(观察命令间隔是否突增)
Slowlog:精准捕获慢命令
Slowlog 不记录所有命令,只抓执行耗时超过阈值的指令,开销极低(纯内存操作),是生产环境必开的“慢查询雷达”。
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
- 默认阈值为 10000 微秒(即 10ms),可通过
CONFIG SET slowlog-log-slower-than 5000调整为 5ms;最大保存条数默认 128 条,建议设为 1024:CONFIG SET slowlog-max-len 1024 - 查看最近 5 条慢日志:
SLOWLOG GET 5,结果中第三字段是真实执行耗时(单位微秒),第四字段是命令及全部参数,可直接复现分析 - 高频慢命令往往指向具体问题:比如
HGETALL返回几 MB 数据、LRANGE biglist 0 -1遍历超长列表、未加 limit 的SCAN迭代等
Latency Monitor:识别系统级毛刺
当 Slowlog 没有明显慢命令,但业务延迟却波动剧烈时,Latency Monitor 就派上用场了——它不看命令本身,而盯住 Redis 底层动作的卡顿。
- 启用只需一行:
CONFIG SET latency-monitor-threshold 100(单位毫秒),表示延迟超过 100ms 的事件才记录 - 常用子命令:
LATENCY LATEST查最近一次毛刺详情;LATENCY HISTORY fork看 fork 耗时历史(RDB 生成时易触发);LATENCY GRAPH command生成命令延迟趋势图 - 重点关注
fork(子进程创建)、aof-write(AOF 刷盘)、eviction(内存淘汰)这几类事件,它们常与系统资源争抢相关
INFO + 基础命令组合:快速状态快照
Monitor 和 Slowlog 解决“点状问题”,INFO 提供“面状视图”,三者结合才能看清全貌。
-
INFO memory查used_memory_rss是否远大于used_memory(暗示内存碎片严重);关注mem_fragmentation_ratio,>1.5 就需警惕 -
INFO stats中instantaneous_ops_per_sec反映实时 QPS,rejected_connections非零说明连接数已达上限 -
INFO commandstats统计各命令调用次数和总耗时,例如cmdstat_get:calls=123456,usec=890123,usec_per_call=7.21,可快速识别高频且平均耗时偏高的命令


















