rdb文件分析工具使用的是github项目
https://github.com/sripathikrishnan/redis-rdb-tools
简介
Rdbtools 是用于解析Redis的 dump.rdb 文件的。该解析器就类似xml的sax解析器,很省内存。
除此之外,rdbtools还有如下功能:
- 遍历所有的数据库和key,生成数据的内存报告。
- 将dump文件转为json
- 使用标准的比对工具比对两个rdb文件。
安装
1、安装python3和pip3
rdbtools是python写的,所以要先安装python和pip管理工具 ,安装python3和pip3 ,遇到pip3坏了就强制重新安装
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py --force-reinstall
// 建立软连接
ln -s /usr/local/bin/pip3 /usr/bin/pip
ln -s /usr/local/bin/pip3 /usr/bin/pip3
// 安装依赖
yum install python3-devel
// 安装rdbtools
pip3 install rdbtools
pip3 install python-lzf
使用
1)将rdb文件转成csv文件 (/mnt/data/redis 是存放redis持久化文件的路径)
rdb -c memory /mnt/data/redis/dump.rdb > /mnt/data/redis/memory.csv
可以看到,用工具转化成csv文件后,会划分成8个列,分别是:
- database:数据库编号
- type:数据类型
- key:键
- size_in_bytes:使用的内存:包括键,值和任何其他开销
- encoding:RDB编码类型
- num_elements:key中的value的个数
- len_largest_element:key中的value的长度
- expiry:过期值
注意,这个内存占用是近似的。通常,实际使用内存要比报告中的稍微高一点。
2)将rdb文件转成json文件
rdb -c json /mnt/data/redis/dump.rdb > /mnt/data/redis/du.json
3) 导出以“a”为开头的hash类型且位于数据库ID为5的key
rdb --command json -n 5 --type hash --key "a.*" dump.rdb
4) 导出内存字节排名前3的keys:
rdb --command memory --largest 3 dump.rdb
5)导出字节大于128的key:
rdb --command memory --bytes 128 dump.rdb
6)导出rdb中的keys:
rdb -c justkeys dump.rdb|uniq
7)导出rdb中的values:
rdb -c justkeyvals dump.rdb
8)导出不包括以“a”为前缀的key
rdb -c memory -o "a.*" dump.rdb