redis-rdb-tools
简介
rdbtools是一个开源的redis内存分析工具,通过解析rdb文件来实现,可以实现下面功能:
- 生成所有数据库和key的内存报告
- 将dump文件转化为JSON格式
- 使用标准diff工具比较两个dump文件
安装
pip install rdbtools
使用
1.导出json格式
例1. rdb --command json /var/redis/6379/dump.rdb
[{"user003":{"fname":"Ron","sname":"Bumquist"},"lizards":["Bush anole","Jackson's chameleon","Komodo dragon","Ground agama","Bearded dragon"],
"user001":{"fname":"Raoul","sname":"Duke"},
"user002":{"fname":"Gonzo","sname":"Dr"},
"user_list":["user003","user002","user001"]},{
"baloon":{"helium":"birthdays","medical":"angioplasty","weather":"meteorology"},
"armadillo":["chacoan naked-tailed","giant","Andean hairy","nine-banded","pink fairy"],
"aroma":{"pungent":"vinegar","putrid":"rotten eggs","floral":"roses"}}]
2. 过滤解析的数据
例1.过滤指定key模式
rdb --command justkeyvals --key "user.*" /var/redis/6379/dump.rdb
user003 fname Ron,sname Bumquist,
user001 fname Raoul,sname Duke,
user002 fname Gonzo,sname Dr,
user_list user003,user002,user001
例2.过滤指定db、指定数据结构、指定key模式。如db2中、以a开头的hash结构的数据
> rdb -c json --db 2 --type hash --key "a.*" /var/redis/6379/dump.rdb
[{},{"aroma":{"pungent":"vinegar","putrid":"rotten eggs","floral":"roses"}}]
3. 生成内存报告
-c memory可以将key使用的内存、类型等情况以csv形式输出,--bytes C可以筛选大约C字节的key,--largest N可以筛选内存最多的前N个key。注意:这里的内存是近似内存,实际内存可能会更大一些。
例1
> rdb -c memory /var/redis/6379/dump.rdb --bytes 128 -f memory.csv
> cat memory.csv
database,type,key,size_in_bytes,encoding,num_elements,len_largest_element
0,list,lizards,241,quicklist,5,19
0,list,user_list,190,quicklist,3,7
2,hash,baloon,138,ziplist,3,11
2,list,armadillo,231,quicklist,5,20
2,hash,aroma,129,ziplist,3,11