Redis大key分析如何实现

原创
02/20 11:42
阅读数 126

【方案一、离线分析】
redis-rdb-tools工具实现对redis大key的分析
一、安装redis-rdb-tools

cd /opt/devops/analyredis/python
mkdir plugin
cd plugin
wget https://github.com/sripathikrishnan/redis-rdb-tools/archive/master.zip

unzip master
cd redis-rdb-tools-master/
python setup.py install

注意安装前python需要安装redis插件,所以实操过程是这样的
沙盒方式切换到python3.5.5环境
#pip install redis
成功后再安装rdb工具包
# source vpython3/bin/activate
# cd plugin/redis-rdb-tools-master/
python setup.py install

二、根据dump.rdb文件成生内存报告
生成CSV格式的内存报告。包含的列有:数据库ID,
数据类型,key,内存使用量(byte),编码。内存使用量包含key、value和其他值。
注意:内存使用量是近似的。在一般情况下,略低于实际值。
可以根据key或数据库ID或数据类型对报告的内容进行过滤。
# rdb -c memory ./dump.rdb > redis_memory_report.csv

# rdb -c memory ./dump.rdb  --bytes 128 > redis_memory_report.csv

# sort -t, -k4nr redis_memory_report.csv

三、分析逻辑
只显示当前最新的redis大key分析结果
如果文件有变化,则更新分析结果,并将上一次结果按照日期归档。


【方案二、实时分析】
通过python脚本链接redis数据库,利用scan函数进行扫描,数据量小的情况下可以使用实时分析

# python findkeys.py 192.168.192.196 6379 '' 1000

【方案三、redis自带的分析命令】
1、# ./redis-cli --bigkeys
限3.0+版本,更准确一点的话,实际上在redis-2.6.0版本就已经出现了--bigkeys来查看
数据库中key的使用情况,但实现方式和3.0不同,而且统计的数据维度有限,3.0+的版本做了很多这方面的优化
2、Redis 4.0+引入了memory usage命令和lazyfree机制

【资料参考】
https://www.cnblogs.com/Eivll0m/p/4514090.html
博文未提及python-lzf,需要安装
#pip install python-lzf
more>>>
https://www.jianshu.com/p/50c0894c0a19

展开阅读全文
打赏
0
0 收藏
分享
加载中
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部