上一篇
"滴滴滴——"凌晨3点,你的手机突然响起,生产环境Redis内存使用率突破95%!😱 你一个激灵从床上弹起来,脑海中闪过灵魂三问:
别慌!今天我们就来手把手教你用Redis自带的"体检工具",像老中医把脉一样摸清缓存使用情况!💪
INFO MEMORY
命令(最全体检报告)0.0.1:6379> INFO MEMORY # 你会看到这样的关键指标: used_memory_human:1.2G # 实际使用内存 used_memory_rss_human:1.5G # 操作系统分配的内存 mem_fragmentation_ratio:1.25 # 内存碎片率(>1.5需警惕) maxmemory_human:2G # 配置的最大内存
📌 健康小贴士:当used_memory
接近maxmemory
时,Redis会触发淘汰策略,可能影响性能!
redis-cli --bigkeys
(揪出大胖子Key)$ redis-cli --bigkeys # 扫描结果示例: [00.00%] Biggest string found so far 'product:998' with 12 MB [12.34%] Biggest hash found so far 'user:session' with 58 fields
⚠️ 注意:生产环境慎用!这个扫描会阻塞请求,建议在从节点或低峰期执行
0.0.1:6379> MEMORY STATS # 关键输出示例: "keys.count": 15230, # 总key数 "dataset.bytes": 857MB, # 实际数据大小 "dataset.percentage": 68.3 # 占最大内存百分比
0.0.1:6379> MEMORY USAGE user:session:998 (integer) 1048576 # 返回字节数(这里约1MB)
# 找出并删除匹配模式的Key(示例:清理7天前的缓存) redis-cli --scan --pattern "cache:*" | xargs redis-cli DEL
# 将大Hash拆分为多个小Hash(伪代码示例) HMSET user:998:base name "张三" age 30 HMSET user:998:contact phone "138xxxx" email "zhang@xx.com"
maxmemory 4gb # 设置合理上限
maxmemory-policy allkeys-lru # 推荐使用LRU淘汰策略
hash-max-ziplist-entries 512 # 优化小Hash存储
# 使用redis-rdb-tools工具(需Python环境) rdb -c memory dump.rdb --bytes 1024 > memory-report.csv
生成报告会显示:每个Key的内存占用、类型、过期时间等详细信息
# 使用redis-cli实时观察内存变化 watch -n 5 "redis-cli INFO MEMORY | grep -E 'used_memory|maxmemory'"
某电商平台通过分析发现:
product:*
的JSON缓存占据 → 改用MessagePack压缩后节省35%空间hz
配置加快过期扫描频率temp:log
Key占用800MB → 原来是某开发调试后忘记删除 😅MEMORY STATS
做健康检查一个健康的Redis,应该是"吃饱"但不会"撑到"的状态哦!🍃
(本文方法基于Redis 7.x版本验证,数据参考2025年7月Redis官方文档)
本文由 寇康伯 于2025-07-31发表在【云服务器提供商】,文中图片由(寇康伯)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/490440.html
发表评论