当redis内存过大时,如果查看key占用内存情况?如果确定哪些key好久没有被访问?
工作中遇到Redis内存占用90%,如果解决?
linux下载链接:https://github.com/xueqiu/rdr/releases/download/v0.0.1/rdr-linux
windows下载链接:https://github.com/xueqiu/rdr/releases/download/v0.0.1/rdr-windows.exe
将下载好的rdr-windows.exe文件与你需要解析的Redis rdbfile放在同一个目录 (运行前需要提前准备好go环境)
然后打开cmd窗口(win+R,输入cmd)进入到rdr-windows.exe目录下,
输入:rdr-windows.exe show dump.rdb dump1.rdb dump2.rdb
分析big keys,很容易得出结论
从RDR可视化分析中得出某个key开头的占用内存很大,从业务分析是否可以删除,这些key为什么为什么不设置生效时间
编写脚本删除无用的key
该命令用于查看该key上次访问时间
8.前后对比
===============================后续=====================================
没过几天程序报错 OOM command not allowed when used memory > 'maxmemory'
经百度结果显示redis内存不够,很诧异前几天不是刚清了redis缓存嘛,怎么内存不够了!
查看每个分片内存占用情况
短期解决方案:短期紧急扩容
长期解决方案:呆解决