操作系统:Centos7      

1.redis-rdb-tools工具是用python语言编写的,所以首先需要安装python:

安装:

(1)安装libffi-devel:

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel

(2)下载python安装包(https://www.python.org/ftp/python/

wget -P /tmp https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

(3)解压

mkdir -p /opt/python3 
tar -zxvf /tmp/Python-3.7.3.tgz -C /opt/python3

(4)编译

mkdir /usr/local/python3 
cd /opt/python3/Python-3.7.3 
./configure --prefix=/usr/local/python3
make && make install

(5)建立软连接

ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3

(6)测试

[root@192 Python-3.7.3]# python3
Python 3.7.3 (default, Mar 16 2022, 22:53:03)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type help, copyright, credits or license for more information.
>>>exit()

   ctrl +d 快捷退出

(7)查看Python版本

python -V

2.使用pip安装rdb-tools

(1)安装依赖

sudo yum install python3-devel

(2)安装python-lzf

sudo pip3 install python-lzf

(3)安装rdbtools

sudo pip3 install rdbtools

3.使用rdb-tools工具分析rdb文件

(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)导出以“nam”为前缀的key

rdb -c memory --key "nam.*" dump.rdb  > memory.csv

  (4) 导出以“a”为开头的hash类型且位于数据库ID为5的key

rdb --command json -n 5 --type hash --key "a.*"  dump.rdb

(5)查找特定键使用的内存

redis-memory-for-key -s  IP  -p 6379 Key  

 可以看出特定的key的大小、类型

(6)查看指定数据库中的key:value  

rdb -c justkeyvals dump.rdb -n 0     //查看0号数据库中的key

(7)查看通过正则表达式匹配的key:value

rdb --command justkeyvals --key ".*key*" dump.rdb    //不要漏掉点 “."

(8) 导出内存字节排名前3的keys:

rdb --command memory --largest 3 dump.rdb

(9)导出字节大于128的key:

rdb --command memory --bytes 128 dump.rdb

(10)导出rdb中的keys:

rdb -c justkeys dump.rdb|uniq

(11)导出rdb中的values:

rdb -c justkeyvals dump.rdb

(12)导出不包括以“a”为前缀的key

rdb -c memory  -o "a.*" dump.rdb


 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐