【Redis运维】使用rdbtools分析当前key的使用情况
一、rdbtools作用
rdbtools工具是一款redis rdb数据文件分析工具,相比redis自带的info命令来说,rdbtools可以非常方便的将key的数量、大小等信息进行分析统计
二、安装rdbtools
1、配置epel的yum仓库后,安装python-pip,然后就可以直接使用pip去安装rdbtools了。为了避免rdbtools在分析工作中报WARNING: python-lzf package NOT detected的错误,这里也将lzf包一起安装了
yum install python-devel python-pip pip install rdbtools pip install python-lzf
2、如果使用的是Python2,在安装rdbtools过程中出现“Command "python setup.py egg_info" failed”的错误,可以换高版本的Python并更新 pip 和setuptools版本解决
pip3 install --upgrade pip pip3 install --upgrade setuptools pip3 install rdbtools pip install python-lzf
三、rdbtools使用方法
1、rdb工具常用选项
· -c FILE:指定rdb工具的分析动作,最常用的就是memory(内存报告),除此还有json(转json)、diff(差异比对)、justkeys(仅有key)、justkeyvals(仅有value)
· -f FILE:输出结果保存到哪个文件
· -n DBS:指定需要分析的数据库,可以指定多个库。如果未指定则分析所有数据库
· -k KEYS:指定需要分析的key,支持正则表达式
2、rdb使用示例
将分析结果保存为csv格式,使用excel分析更方便
rdb -c memory /data/redis_data/dump.rdb -f /tmp/result.csv
解析dump文件并以JSON格式标准输出
rdb -c json /data/redis_data/dump.rdb
只解析符合正则的keys
rdb -c json -k "sences_2.*" /data/redis_data/dump.rdb
解析以“a”开头+hash类型+数据库ID为2的key
rdb --command json --db 2 --type hash --key "a.*" /data/redis_data/dump.rdb
3、rdbtools报告说明
· database:Key所属的database编号
· type:Key数据类型
· key:Key名称
· size_in_bytes:Key的总大小,单位为字节
· encoding:RDB编码类型
· num_elements:key中的value的个数
· len_largest_element:key中的value的长度
· expiry:过期值
要查找占用内存最高的几个key,只需要对分析报告文件过滤排序即可
awk -F, '{print $1,$2,$3,$4}' dump.csv | sort -k4 -rn | head -10
评论