例行巡检做什么
例行巡检固定一批项目:用量水位与趋势、碎片率、淘汰与过期速率、客户端与复制缓冲、大键扫描结果、键数增长。异常项进入治理队列,逐条跟踪到关闭。巡检的价值在趋势对比,单次结果必须和上次基线比才有意义。
基本信息
| 频率 | 按业务节奏定,通常周或双周 |
|---|---|
| 工具 | INFO 系列加 MEMORY 系列加扫描工具 |
| 输出 | 趋势报告与治理项清单 |
| 关键动作 | 与上次基线逐项对比 |
典型使用场景
- 例行周报:水位、键数、淘汰与过期速率
- 版本或配置变更后的专项复核
- 大促或活动前的容量确认
- 治理项闭环跟踪
- 新实例接入时建立基线
巡检命令组合
巡检命令组合
redis-cli INFO memory | grep -E 'used_memory_human|maxmemory_human|mem_fragmentation_ratio'
redis-cli INFO stats | grep -E 'evicted_keys|expired_keys|keyspace_hits|keyspace_misses'
redis-cli INFO clients | grep -E 'connected_clients|client_recent_max_input_buffer'
redis-cli MEMORY DOCTOR # 官方给出的内存诊断建议文字
redis-cli --memkeys -i 0.1 # 大键扫描,输出按内存口径的排名
redis-cli DBSIZE # 键总数,与上次巡检记录对比巡检项与异常表现
| 巡检项 | 关注点 | 异常表现 |
|---|---|---|
| used_memory 水位 | 相对 maxmemory 的占比 | 持续攀升或逼近上限 |
| mem_fragmentation_ratio | RSS 与逻辑用量的比值 | 明显大于 1 且持续上升 |
| evicted_keys 增速 | 被内存策略淘汰的速率 | 非零且持续,说明容量不足 |
| expired_keys 增速 | 过期删除速率 | 突增常伴延迟尖峰 |
| 客户端缓冲 | 输出缓冲是否异常放大 | 单连接缓冲过大多与慢消费或大返回有关 |
| 命中率 | keyspace_hits 与 misses 的比例 | 骤降先查键名或过期策略变更 |
| 键总数 | DBSIZE 的变化 | 异常增长先查是否有写入失控 |
MEMORY DOCTOR 给出一段人类可读的诊断文字,适合放进巡检报告;它不给精确数值,判断仍要结合 INFO 的具体字段一起看。
巡检项长期不更新,新出现的风险点(例如新增的脚本缓存、客户端跟踪带来的额外开销)会长期无人覆盖,清单需要按版本定期复审。
巡检发现的问题要落到具体的人和时间点。只在报告里反复出现的异常,本质上等于没有巡检。