首页/数据/数据库速查/内存告警应急五步法
Redis 运维与场景124 条

内存告警应急五步法

收到内存告警的处置顺序:看 used_memory/maxmemory 与淘汰 → 找大 key 与过期堆积 → 看碎片与 RSS → 短期止损(调参/清理)→ 长期根治(拆分/扩容/改设计)。

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

应急检查

应急检查
redis-cli INFO memory | grep -E "used_memory_human|maxmemory_human|maxmemory_policy|mem_fragmentation_ratio"
redis-cli INFO stats | grep evicted_keys
redis-cli INFO keyspace            # 各库 keys/expires
redis-cli --bigkeys                # 低峰或副本上执行
redis-cli MEMORY DOCTOR            # 官方体检建议
redis-cli MEMORY PURGE             # 尝试归还碎片(效果有限)
关键判断used 接近 maxmemory 且 evicted_keys 增长=容量不足
碎片fragmentation_ratio>1.5 关注;RSS 高 used 低多为碎片
OOMnoeviction 策略下写命令直接报错
止损低峰清理大 key/调淘汰策略;根治靠拆分与扩容
调大 maxmemory 前先确认物理内存余量:把 OOM 从「Redis 报错」换成「OS OOM Killer 杀进程」更糟。

易错点

  • 只清大 key 不改设计:两三周后同样告警再来一次
  • 把所有内存问题都归因于数据增长:输出缓冲区/复制缓冲区也会吃内存

数据来源与参考

  • Redis 官方文档: 内存优化
  • Redis 官方文档: MEMORY DOCTOR

相关工具

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