RdbTools

Redis爆了?快速定位Redis占用最高的key有哪些

亡梦爱人 提交于 2020-04-24 05:23:13
1.首先cp一份dump.rdb到另外的目录(一般redis的持久化以rdb的方式存储,在redis配置文件可以找到dump.rdb的存储路径) 2.用rdbtools工具生产内存报告,命令是 rdb -c memory,例子: sudo rdb -c memory /vagrant/dump.rdb >test.csv (rdb文件越大,生成时间就長久) 3.报告生成后,结合用linux sort命令排序,根据內存列排序,找出最高的key有哪些。例子: sudo sort -k4nr -t , test.csv > sort.txt 4.查看sort.txt的结果,一般能得出类似‘my_ranking_list’开头的集合占用最高,排在了前面。若要查看类似‘my_ranking_list’开头的总共占用了多少内存,可以用命令: sudo cat sort.txt | grep ‘my_ranking_list’ | awk -F ',' '{sum += $4};END {print sum}' 5.我们得知了my_ranking_list这样的集合占用最多内存,而且很可能是业务已经不再需要,但是长期在内存中没清理的,我们可以删除了这些集合,可以用模糊匹配key来删除,命令如下: redis-cli -h 127.0.0.1 -p 6379 keys 'my_ranking

Redis内存分析工具

寵の児 提交于 2020-03-09 16:51:29
RdbTools 是一个由于分析Redis dump.rdb文件的工具,有以下功能: 生成所有数据库和key的内存分析报告 把dump文件转换成JSON文件 用标准的diff工具比较2个dump文件 安装rdbtools 通过pip安装 pip install rdbtools 源码安装 git clone https://github.com/sripathikrishnan/redis-rdb-tools cd redis-rdb-tools sudo python setup.py install 命令一览: [root@virt]# rdb --help Usage: rdb [options] /path/to/dump.rdb Example : rdb --command json -k "user.*" /var/redis/6379/dump.rdb Options: -h, --help show this help message and exit -c FILE, --command=FILE Command to execute. Valid commands are json, diff, and protocol -f FILE, --file=FILE Output file -n DBS, --db=DBS Database Number.