上一篇
场景引入:凌晨3点,你的手机突然狂震——线上Redis内存爆了!📱💥 监控警报显示used_memory
飙到95%,服务开始拒绝写入,这时候,你需要的不是重启,而是精准的"内存瘦身术"…
💡 快速自检命令:
redis-cli info memory | grep -E 'used_memory|mem_fragmentation_ratio'
# 被动等待过期(默认) CONFIG SET maxmemory-policy volatile-lru # 主动扫描清理(适合紧急情况) redis-cli --scan --pattern "user:*" | xargs redis-cli del
⚠️ 注意:SCAN
比KEYS
更安全,不会阻塞服务
# 找出TOP 5大Key(需安装redis-rdb-tools) rdb --command memory dump.rdb --bytes 1024 --largest 5
处理方案:
HSCAN
+HDEL
逐步删除百万级字段 # 开启自动整理(Redis 4.0+) CONFIG SET activedefrag yes # 手动触发整理 MEMORY PURGE # 注意:可能引起短暂延迟
根据业务特点选择驱逐策略:
# 最近最少使用的Key优先删除 CONFIG SET maxmemory-policy allkeys-lru # 最短存活时间的Key优先删除(适合有时效性的数据) CONFIG SET maxmemory-policy volatile-ttl
使用MEMORY USAGE
定位问题Key:
# 查看某Key的内存占用(字节) MEMORY USAGE user:10086 # 生成内存报告(需redis-cli 6.2+) redis-cli --memkeys
SET order:123 "data" EX 3600
⏳ MEMORY STATS
检查碎片率 CONFIG SET maxmemory 4gb
+ 告警规则 最后的小贴士:当遇到OOM
错误时,先执行MEMORY MALLOC-STATS
查看底层分配情况,比盲目扩容更有效哦!✨
(本文方法基于Redis 7.2版本验证,2025年8月仍适用)
本文由 烟冰夏 于2025-08-03发表在【云服务器提供商】,文中图片由(烟冰夏)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/523654.html
发表评论