Redis内存分析工具-RDBtools安装&使用
目录
是什么
Rdbtools提供了一组工具,可以帮助用户分析、导入和转换Redis的RDB文件。它的功能包括:
- 解析RDB文件: Rdbtools可以解析RDB文件,将其转换成人类可读的文本格式,以便用户更容易理解和分析其中的数据。
- 数据导入和转换: 用户可以使用Rdbtools将RDB文件导入到其他数据库系统中,或者将其转换成其他格式,以便于进一步处理和分析。
- 数据恢复: 在一些情况下,如果Redis数据库出现问题,用户可能希望从RDB文件中恢复数据。Rdbtools提供了相关的功能,帮助用户进行数据恢复操作。
安装
以下操作在CentOS7.9操作
安装Python(已安装忽略,低版本需要卸载重安)
yum install -y python3 python3-devel python3-libs python3-tools
python3 -m ensurepip
python3 -m pip install --upgrade pip
安装GCC(已安装忽略)
yum install gcc
安装rdbtools和python-lzf
pip install rdbtools python-lzf
安装成功页面
基础命令
rdbtools 有三个基础命令:
rdb -- 解析rdb文件
redis-memory-for-key -- 解析server里的单个key
redis-profiler --解析rdb文件成html格式
常用示例
使用rdbtools工具分析rdb文件
查找大key与处理
rdb -c memory -l 3 rdbFile.rdb
#固定语法 命令 内存分析 内存按大小输出 输出前X个KEY 服务器rdb文件路径
执行以上命令得到结果
#第几个数据库,数据类型,key名,占用内存空间(单位:bytes),存储编码,元素个数, 值长度 , 过期时间
database, type, key, size_in_bytes, encoding,num_elements,len_largest_element,expiry
0,hash,backUp,4313880220,hashtable,653,8792544,
0,string,StringKey,3313880220,string,179556,179556,2023-12-09T08:52:52.702000
-
分析&处理
根据上一步分析的Key进行排查,确定系统优化方案;
如果要删除现有存储的数据,需根据数据类型分别处理,例如:
“backUp” key类型为hash,并且占用了将近4G内存,如果直接使用"del backUp"删除,会导致Redis阻塞,所以需要使用"hdel、hlen"命令逐步删除
"StringKey" key类型为String,并且占用了将近3G内存,如果直接删除,也会阻塞Redis,所以需要在业务低谷时执行“del”命令,如果是Redis版本在4.0以上,还可以使用异步删除“UNLINK key1 key2 key3 ... keyN”
导出CVS文件
rdb -c memory -f a.csv -l 10 rdbFile.rdb
#固定语法 命令 内存分析 导出 导出文件 内存按大小输出 输出前X个KEY 服务器rdb文件路径
直连Redis服务查询单个key详情
redis-memory-for-key -s 192.168.1.1 -p 7002 keyName
#固定语法 server ip 服务端口 要查的Key
生成HTML图表
#生成全部rdb文件
redis-profiler -f rdb.html rdbFile.rdb
#固定语法 输出html 要分析的rdb文件
更多用法见Help
rdb -h
redis-memory-for-key -h
redis-profiler -h