监控主库写入负载是保障redis主从稳定的关键,需重点关注写入速率、命令分布、复制积压及内存压力,并通过指标采集、阈值告警与行为分析实现精准定位与自动化监控。

监控主库写入负载是保障 Redis 主从架构稳定运行的关键环节。主库承担全部写请求,若写入压力过大,可能引发延迟堆积、复制中断甚至内存溢出。监控重点不是“有没有写”,而是“写得多快、多频繁、是否积压”,需结合指标采集、阈值告警与行为分析。
关注核心写入指标
通过 INFO commandstats 和 INFO stats 获取实时写入强度:
- instantaneous_ops_per_sec:当前每秒命令执行数,重点关注写命令(如 SET、HSET、LPUSH)占比;持续高于 5k–10k(视硬件而定)需警惕
- total_commands_processed 与 instantaneous_input_kbps:反映总吞吐和网络写入带宽,突增可能预示批量写入或异常客户端
- rejected_connections 和 sync_full/sync_partial_ok:连接拒绝增多或全量同步频繁,常是主库过载导致从库重连加剧的信号
- expired_keys、evicted_keys:大量过期或驱逐键说明内存压力大,间接反映写入节奏超出内存承载能力
抓取写命令分布与热点 Key
仅看总量不够,需定位“谁在写、写什么”:
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
- 用 redis-cli --stat 快速观察 ops/sec 波动趋势(适合临时诊断)
- 启用 MONITOR 命令(仅限低流量环境)或配置 slowlog(
slowlog-log-slower-than 1000,记录耗时超 1ms 的写操作) - 结合 redis-cli --bigkeys 定期扫描,避免单个大 key 写入(如 HSET 大 Hash)拖慢主线程
- 对关键业务 key 使用 CLIENT LIST + CLIENT GETNAME 关联客户端标识,识别异常写入来源
跟踪复制延迟与积压
主库写入压力会直接传导至复制链路:
- 在从库执行 INFO replication,检查 master_last_io_seconds_ago(>5 秒即告警)和 slave_repl_offset 与主库 master_repl_offset 的差值(offset 差 > 10MB 视为积压)
- 主库上查看 INFO replication 中 connected_slaves 数量及每个 slave 的 slave0:ip=..., offset=...,确认是否所有从库都在同步且 offset 持续增长
- 注意 repl_backlog_active 和 repl_backlog_size:若积压超出缓冲区,将触发全量同步,进一步加重主库负担
接入自动化监控系统
人工查指标效率低,推荐轻量级组合:
-
Prometheus + redis_exporter:采集
redis_commands_total{cmd=~"set|hset|lpush|del"}等指标,按分钟聚合写入速率并设阈值告警 -
Grafana Dashboard 集成
redis_connected_clients、redis_memory_used_bytes、redis_master_repl_offset等,可视化写入-内存-复制三者关联趋势 - 对关键业务,可在应用层埋点:每次调用 Jedis/Lettuce 的 set() 方法时打日志或上报 metrics,实现写入来源精准归因










