RDB分析工具redis-rdb-tools

midoll 1,576 2022-03-29

rdb文件分析工具使用的是github项目

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

简介

Rdbtools 是用于解析Redis的 dump.rdb 文件的。该解析器就类似xml的sax解析器,很省内存。

除此之外,rdbtools还有如下功能:

  1. 遍历所有的数据库和key,生成数据的内存报告。
  2. 将dump文件转为json
  3. 使用标准的比对工具比对两个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


# redis