首页/数据/数据库速查/MONITOR 实时命令流(慎用)
Redis 运维与场景124 条

MONITOR 实时命令流(慎用)

MONITOR 打印实例收到的每条命令:调试利器但开销大(吞吐与内存影响显著),只允许短时、低峰、带超时的采样。

数据库速查数据更新于 2026-10-13

MONITOR 是调试工具不是监控工具

MONITOR 把实例收到的每条命令实时打印出来,包括时间戳、来源、命令与全部参数。它非常适合短时调试与核对调用方行为,但代价极高:每条命令都要额外格式化并推送给客户端,高 QPS 下会显著增加 CPU 与网络开销。生产使用必须限时、限低峰,并且不要把它当成常规监控手段。

基本信息

适用平台Redis 全版本
输出内容时间戳 + 来源标识 + 命令与参数
典型开销命令量翻倍处理,输出可能达到每秒数万行
安全风险参数中的敏感数据会被完整打印
推荐替代SLOWLOG、INFO commandstats 做统计

典型使用场景

  • 核对客户端实际发出的命令与预期是否一致
  • 排查某个键被谁在写:短时采样后筛选命令流
  • 验证代理或中间件的改写行为是否符合设计
  • 临时确认慢命令的实际来源与调用方
  • 演练环境复现问题时观察命令序列

安全采样方式

安全采样方式
# 限时 5 秒采样,按命令名统计 Top
# timeout 5 redis-cli MONITOR | awk '{print $4}' | sort | uniq -c | sort -rn | head
# 只关注某个键的访问(先限时再过滤,避免输出洪流)
# timeout 5 redis-cli MONITOR | grep -F 'hot:config'
# 常规统计改用命令统计与慢日志
redis-cli INFO commandstats | head -20
redis-cli SLOWLOG GET 10
redis-cli SLOWLOG LEN
# 需要定位大请求时看客户端来源
redis-cli CLIENT LIST | head -20

观测手段对照

手段开销适用
MONITOR高,随命令量线性增长短时限时调试
SLOWLOG低,仅记录超阈值命令慢命令排查的常规手段
INFO commandstats低,累计计数看命令族资源占比
CLIENT LIST低查看连接来源与阻塞情况
--bigkeys / --hotkeys中等,需扫描全键低峰执行的结构分析
commandstats 与 SLOWLOG 的组合能覆盖大多数排查需求:前者看命令族总量,后者看具体慢调用,都比 MONITOR 安全得多,优先考虑它们。
MONITOR 的输出包含完整命令参数,可能带手机号、令牌、密码等敏感值:生产环境不要落盘、不要贴进工单或聊天工具,只允许限时在受控终端查看。

易错点

  • 长时间开着 MONITOR 排查:观测行为本身把 CPU 与带宽吃满,反而制造了一次故障
  • 在生产高峰执行:命令量本来就大,输出洪流会拖慢实例并挤占客户端带宽
  • 把 MONITOR 输出贴进工单或群聊:命令参数里的敏感数据被完整泄露
  • 用 MONITOR 替代常规监控:没有聚合与趋势能力,还会掩盖真正需要采集的指标

数据来源与参考

  • Redis 官方文档: MONITOR

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌