首页/数据/Redis 进阶速查/MEMORY DOCTOR:一键内存体检
内存与管理99 条

MEMORY DOCTOR:一键内存体检

MEMORY DOCTOR 汇总内存状态并给出人话建议:碎片是否偏高、是否接近上限、是否有大量换出等,适合作为排查起点。

Redis 进阶速查数据更新于 2026-10-13

MEMORY DOCTOR 是什么

MEMORY DOCTOR 是 Redis 4.0 起提供的 MEMORY 子命令,一次性汇总实例内存的体检结论:峰值内存、碎片率、是否已接近 maxmemory、有没有大量换出等,并把结论写成一段人话建议。它不返回结构化字段,只输出文本,定位是内存排查的第一站而不是唯一依据。

基本信息

命令MEMORY DOCTOR
起始版本Redis 4.0(MEMORY 子命令族)
权限要求普通连接即可,无需 admin 类权限
输出纯文本诊断与建议
副作用只读,可随时执行
建议搭配INFO memory / MEMORY STATS / MEMORY USAGE

典型使用场景

  • 刚接手一个实例:先看它有没有碎片、水位、换出这几类问题
  • 收到内存告警后的第一步,用来决定往哪个方向深挖
  • 变更前后各跑一次留档,作为容量与调优的对照材料
  • 向不熟悉 Redis 的同事解释当前内存状况,文本比指标表更直观
  • 确认 maxmemory 水位与淘汰是否已经开始影响业务

巡检与留档用法

巡检与留档用法
redis-cli -h 10.0.0.12 -p 6379 MEMORY DOCTOR          # 只读命令,随时可跑
redis-cli MEMORY DOCTOR > doctor-$(date +%F).txt       # 落盘留档,便于前后对比
redis-cli INFO memory | grep -E 'used_memory_human|maxmemory_human|mem_fragmentation_ratio'  # 补上关键指标
redis-cli MEMORY STATS | head -20                      # 结构化字段:peak、overhead、碎片
redis-cli INFO stats | grep -E 'evicted_keys|expired_keys'   # 有淘汰说明真到了上限
redis-cli MEMORY USAGE user:1001                       # 怀疑单个键偏大时定点核查

报告要点读法

提示类型含义对应动作
碎片率偏高分配器持有但未使用的内存偏多看 MEMORY STATS 的 overhead,低峰再考虑 MEMORY PURGE
接近内存上限used_memory 已逼近 maxmemory结合 evicted_keys 与淘汰策略,评估扩容或拆分实例
存在换出内存被换到磁盘上到系统层看 vm.swappiness 与 swap 曲线,关注延迟毛刺
峰值内存历史峰值记录容量规划按峰值定规格,不要用当前值
输出是散文体建议,措辞随版本演进,不要写死关键词做监控解析;机器判定请改用 INFO memory 与 MEMORY STATS。
健康实例也会打印一段内存摘要,看到文本不等于出了故障;有结论性提示时才需要往下查。

三项指标同时看

三项指标同时看
# 水位、碎片、淘汰三条线一起看,比单看一条更可靠
redis-cli INFO memory | grep -E 'used_memory:|maxmemory:|mem_fragmentation_ratio:'
redis-cli INFO stats  | grep -E 'evicted_keys|expired_keys'
报告里的建议是方向不是命令:例如针对碎片或内存回收的建议往往涉及阻塞操作,先评估影响再决定是否执行。

易错点

  • 把 DOCTOR 的建议直接当执行指令(例如立刻重启或立刻 PURGE),没有评估对业务的影响
  • 健康实例也会输出占用摘要,误读为故障告警
  • 只看碎片率不看 overhead 结构,把正常的分离开销误判成内存泄漏
  • 在业务高峰为了压低 rss 执行 MEMORY PURGE,换来额外延迟抖动
  • 用文本输出写监控解析规则,版本升级后措辞变化导致告警静默失效

数据来源与参考

  • Redis 官方文档:MEMORY DOCTOR 说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌