阅读 28

redis常用工具

redis-rdb-tools

简介

rdbtools是一个开源的redis内存分析工具,通过解析rdb文件来实现,可以实现下面功能:

  1. 生成所有数据库和key的内存报告
  2. 将dump文件转化为JSON格式
  3. 使用标准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
复制代码