1:环境搭建(windows redis-rdb-tools)
1:安装 Ptyhon
2:安装 rdbtools (rdbtools · PyPI)
cd 到 rdbtools 目录下执行安装命令 python setup.py install
3:安装 Pip (pip · PyPI)
cd pip 目录 :python setup.py install
4:快速下载相应的包
pip3 install python-lzf -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install rdbtools -i https://pypi.tuna.tsinghua.edu.cn/simple
5:解决问题:Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“的解决办法
https://link.zhihu.com/?target=https%3A//my.visualstudio.com/ 3169 xiao!!123 下载
2:获取dump.rdb 文件
redis配置文件中会定期的保存内存中的快照,dump.rdb文件
3:命令转成csv文件
Linux:(因为生产环境,我用的是Windows工具)
rdb -c memory /root/dump.rdb > /root/memory.csv
Windows:
4:csv文件
1:通过文件看出来存在大key
第一个文件1.023313022218645 G 而且没有设置过期时间,跟业务开发的小伙伴一起进行了代码的分析,在jcq上报数据业务状态数据的时候会往redis中存,本地,直调,级联,在存直调数据的时候 ,存了两份,一个是级联的数据 一个是直调的数据,其实发送给直调的地方是不需要存级联的数据,这个地方存了,但是没有取走,导致redis不断的挤压数据。(如上图)
2:没有设置过期时间,有一百多万的数据(如下图)