背景
由于频繁收到redis内存使用率过高的告警消息,因此想找一个能分析出是哪些keys占用内存过多的工具,辅助清理。
选择工具过程
通过google搜索,尝试过以下工具,都不太满意。
- Redis Memory Analyzer:使用Scanner模式不知道为啥没有输出结果
- Rdbtools:rdb文件过大的时候,分析耗时太久
- Redis Toolkit:过于复杂了
- Redis Inventory:输出异常,貌似不适用集群模式
注意:redis-cli –bigkeys命令输出信息太少了,经验证,输出的bigkeys并不是较大的。
最终选择 rdb-tools
安装简单,输出友好,分析一个6g的rdb文件,耗时三分多钟,比Rdbtools快很多
# 下载
wget https://github.com/catcherwong/rdb-tools/releases/download/0.8.0/rdb-cli.0.8.0.linux-x64.zip
# 解压
tar zxvf rdb-cli.0.8.0.linux-x64.zip
# 执行,-tb参数最大值是200
./rdb-cli memory /tmp/demo.rdb -ot html -tb 200
# 执行完之后,默认当前目录会有res.html文件,打开此文件就能看到分析结果了。另外还可以指定保存路径,命令如下
./rdb-cli memory /tmp/demo.rdb -ot html -tb 200 -o /tmp


