Redis 内存突然飙升,通常不是单一原因,而是数据结构、访问模式、持久化机制、客户端或运维操作叠加导致的。下面按 最常见 → 次常见 → 排查方法 给你一个结构化说明。
used_memory 持续或突然上涨✅ 检查:
redis-cli info keyspace
redis-cli info memory
一个 key 很大,直接导致内存暴涨
✅ 排查:
redis-cli --bigkeys
⚠️ 注意:
✅ 检查:
redis-cli info stats
# 看 expired_keys 是否很少
✅ 建议:
Redis 过期策略:
✅ 现象:
used_memory 高但 keys 看起来不多bgsave 同样会 fork✅ 典型现象:
redis-cli info memory
# mem_fragmentation_ratio > 1.5 就要注意
✅ 解决:
CONFIG SET activedefrag yes
✅ 检查:
redis-cli client list
关注:
omem(输出缓冲区)idle 时间DEBUG SEGFAULT(测试环境)FLUSHDB 后又大量写入redis-cli info memory
重点:
used_memoryused_memory_rssmem_fragmentation_ratioredis-cli info keyspace
redis-cli --bigkeys
redis-cli info stats
# expired_keys
# evicted_keys
redis-cli info persistence
redis-cli client list
| 场景 | 原因 |
|---|---|
| 内存突然翻倍 | bgsave / AOF 重写 |
| 内存持续上涨 | 大 key + 无过期 |
| 内存高但 key 少 | 过期 key 未回收 |
| 内存高 + CPU 高 | 大 key + 高并发 |
| 内存高 + 延迟高 | 碎片 + 阻塞客户端 |
你可以直接贴出:
info memoryinfo stats我可以 直接帮你判断是哪一种原因,并给出针对性解决方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。