redis内存报告分析(持久化文件rdb的分析)

rdbtools 是解析Redis rdb文件、分析其内存,导出其数据等比較好的工具,用python編寫。

Github地址:

https://github.com/sripathikrishnan/redis-rdb-tools

一、安裝方法:

pip install rdbtools  

二、使用方法:

1.幫助命令 rdb --help

 

-c FILE       #指定rdb文件;

-f FILE       #指定导出文件;

-n DBS        #解析指定数据库,如果不指定默认包含所有;

-k KEYS       #指定需要导出的KEY,可以使用正则表达式;

-o NOT_KEYS   #指定不需要导出的KEY,可以使用正则表达式;

-t TYPES      #指定解析的数据类型,可能的值有:string,hash,set,sortedset,list;可以提供多个类型,如果没有指定,所有数据类型都返回;

-b BYTES      #限制內存输出的大小,大於或者等於這個值;

-l LARGEST    #根据內存輸出大小top N個 key;

-e ESCAPE     #指定输出编码,默认RAW;

2.解析dumo.rdb文件,以jsno格式輸出

rdb -c json /var/lib/redis/dump.rdb
rdb -c json  /var/lib/redis/dump.rdb  > /var/lib/redis/rdbtools.json  

(json將輸出保存到指定文件中)

3.只解析輸出符合正则的keys

 rdb -c json -k "my" /var/lib/redis/dump.rdb

4.根據類型解釋輸出(-t 命令)

rdb -c json -t set /var/lib/redis/6379/dump.rdb

5.生成CSV格式的内存报告。包含的列有:数据库ID,数据类型,key,内存使用量(byte),编码。内存使用量包含key、value和其他值

sudo rdb -c memory /var/lib/redis/6379/dump.rdb > /var/lib/redis/6379/memory.csv

6.生成CSV格式的内存报告,内存使用量128以上的(-b命令)

sudo rdb -c memory -b 128 /vagrant/dump.rdb

7.生成CSV格式的内存报告,輸出内存使用前10 (-l命令)

sudo rdb -c memory -l 10 /vagrant/dump.rdb

8.单个key所使用的内存量 (redis-memory-for-key 命令)

redis-memory-for-key -s 192.168.50.59 -p 6379 Summer_Gamebox_WG_all

三、一般分析流程

1.用 生成內存報告 rdb -c memory

sudo rdb -c memory  /vagrant/dump.rdb >test.csv

 (rdb數據文件大,生成時間就長,一般1.56G的要40來分鐘)

2.報告生成后,用linuxsort命令排序,生成有順序的文件,查看耗內存最高的key有哪些,找出異常數據

sudo sort -k4nr -t , test.csv > sort.txt

3.例如,查詢得知‘send_msg’這個key的hashtable類型的集合很多耗內存最大的,統計總共耗了多少

sudo cat sort.txt | grep ‘send_msg’ | grep ‘hashtable’ | awk -F ',' '{sum += $4};END {print sum}'

 

 

 

 

 

 

转载于:https://my.oschina.net/u/2394701/blog/1418083

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值