首页/数据/Redis 进阶速查/内存排查一页清单
内存与管理99 条

内存排查一页清单

内存问题按清单推进:看 INFO memory 构成 → MEMORY DOCTOR 建议 → 排查客户端与复制缓冲 → 抽查大键与键增长 → 评估碎片与系统内存 → 决定治理或扩容。

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

内存排查一页清单

内存问题按清单推进,保证每一步都有证据:先看 INFO memory 的总量与构成 → 用 MEMORY DOCTOR 判断问题类型 → 排查客户端与复制缓冲这类非数据占用 → 抽查大键与键增长速度 → 评估碎片与系统侧内存(含 swap)→ 最后做治理或扩容决策。

排查顺序

第 1 步总量与构成,看 INFO memory
第 2 步问题类型判断,看 MEMORY DOCTOR
第 3 步非数据占用,看客户端与复制缓冲
第 4 步数据侧,大键与键增长
第 5 步系统侧,碎片率、rss 与 swap
第 6 步治理或扩容,并留存时间线

每步的判读要点

步骤命令异常信号
总量与构成INFO memoryused_memory 贴近 maxmemory,或数据集占比异常
问题类型MEMORY DOCTOR给出碎片、淘汰或大键方向的提示
非数据占用CLIENT LIST少数连接的缓冲字段明显突出
数据侧MEMORY USAGE 与 --bigkeys单个键占用异常突出
系统侧mem_fragmentation_ratio 与 free -m碎片率高,swap 被使用
淘汰与命中INFO statsevicted_keys 增长、命中率下降

一条龙取证

一条龙取证
redis-cli INFO memory
redis-cli MEMORY DOCTOR
redis-cli MEMORY STATS | head -20
redis-cli CLIENT LIST | head -10
redis-cli --bigkeys
redis-cli INFO stats | grep -E 'evicted_keys|keyspace_hits|keyspace_misses'

典型使用场景

  • 值班响应:告警后按顺序走一遍,避免凭经验跳步
  • 新实例体检:上线前建立内存构成基线
  • 大促前巡检:确认水位、淘汰与缓冲都在预期范围
  • 复盘取证:用同一清单收集材料,结论可复现
  • 交接沟通:把结论与证据一起交付,不依赖个人记忆

判读要点补充

  • 数据集占比正常而总量偏高时,优先查客户端与复制缓冲
  • 淘汰计数持续增长说明策略已在删数据,需确认是否符合预期
  • 碎片率高且 rss 远大于 used_memory 时,再评估整理或迁移
  • 系统侧 swap 被使用,意味着内存压力已经溢出到磁盘
  • 每一步的结论都要连同命令输出一起留存
清单的价值在于每步都留下证据:把命令输出与当时的结论记进工单,复盘时能还原判断链条,不必依赖记忆重建现场。
多数内存问题最终落在三处:缓冲(客户端与复制)、大键、内存碎片;数据集总量正常却告警时,优先查前两类。

易错点

  • 跳步直达结论(例如直接扩容),根因常藏在缓冲或大键里
  • 排查记录不留存,同类问题下次重复走全流程
  • 只看数据集内存不看系统侧 rss 与 swap,误判可用余量
  • 用过期或时间点不明的采样数据下结论
  • 把一次告警当孤立事件,事后没有回到容量基线上复核

数据来源与参考

  • Redis 官方文档:内存问题排查框架
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌