线上redis实例内存使用越来越大,有时出现卡顿,甚至出现慢问题。服务器配置、redis配置参数已调优,这个时候,就需要我们对redis内存进行分析了。
1、分析工具有哪些?
baidu、google 出的工具:
- rdbtools(redis-rdb-tool) 离线内存分析的祖师爷,Python语言开发,解析速度慢,不支持redis7
- Redis Data Reveal(简称RDR), 基于redis-rdb-tool,golang语言开发,解析速度快,不支持redis7,维护停止在2019年10月9日。
目前,绝大部分互联网公司使用redis6版本,以上两个工具够用。
但是,越来越多的公司使用了redis7+,就需要一款支持redis7+的工具
注: 2025年12月了,请阅读 redis内存分析工具选型
2、rdr 工具介绍
RDR(redis data Reveal)是一个用于离线分析 redis rdb 文件的工具,通过它,可以快速发现实例中的bigkey,帮助您掌握Key在内存中的占用和分布、(通过Key过期时间或数量)得知哪些key在无限增长等信息。为您的优化操作提供数据支持,帮助您避免因Key倾斜引发的内存不足、性能下降等问题。
- 开源地址:github.com/919927181/r…
- 由泰山李工,2025年12月基于[xueqiu/rdr ]开发,支持了redis7(rdb 版本号 1<= version <=12)。
- 采用go语言开发,解析速度非常快
- 分析结果支持保存到文件,支持在线以html方式展示。
3、rdr 工具使用说明
-
从开源地址release中,下载linux下的可执行文件 github.com/919927181/r…
-
为了避免对线上redis实例服务器的IO影响,请将redis rdb文件下载到测试服务器
-
将rdr工具,redis rdb 文件上传到测试服务器
-
赋予可执行权限,运行工具
# cd /tmp
# chmod a+x ./rdr*
# ./rdr-linux show -p 8099 *.rdb
- 防火墙端口放行
For Ubuntu\Debian:
sudo ufw allow 8099/tcp && sudo ufw reload
For Redhat\Centos:
sudo firewall-cmd --zone=public --add-port=8099/tcp --permanent
sudo firewall-cmd --reload
- 浏览器访问 http://your-host:8099/instance ,查看分析结果
最后,欢迎给rdr工具Star ,欢迎提issue反馈问题或改善建议,欢迎开发者加入。