使用 rdbtools 分析 redis 内存使用情况
2019 年 9 月份对公司生产环境的 Redis 进行了内存分析,经过了一波操作,内存占用由 26.56GB 缩减到 11.04GB,足足减少了 15.52GB,成就感爆棚,一直想找机会记录下 redis-rdb-tools 的使用,这就是本篇博文的由来。
安装 redis-rdb-tools
这里我们选择通过源码安装
- 从 GitHub 拉取 redis-rdb-tools:
git clone https://github.com/sripathikrishnan/redis-rdb-tools - 进入 redis-rdb-tools 目录:
cd redis-rdb-tools - 安装 python 运行脚本:
sudo python setup.py install
到这里就安装完成了,可以使用 rdb --help 命令查看工具的用法
Tips : 官方推荐安装 python-lzf 组件(能加快解析速度),安装指令 pip install python-lzf,如果报下面的错误,是没有安装 pip 工具,执行 sudo easy_install pip 安装即可。
将 redis 内存使用数据导出到 csv
使用命令 rdb -c memory ${rdbFilePath} > ${csvFilePath},示例 rdb -c memory /Users/enoch/Downloads/hins10965791_data_20200416112336.rdb > /Users/enoch/Downloads/result-20200416.csv
将 CSV 文档导入到 MySql 进行分析
- 创建数据表,语句如下:
1 | |
导入记录
数据分析
查询占用空间最大的 100 个 key:
SELECT * FROM redis_memory_analysis ORDER BY size_in_bytes DESC LIMIT 100查询 hash 结构这种元素数量最多的 50 个 key:
SELECT * FROM redis_memory_analysis WHERE type = 'hash' ORDER BY num_elements DESC LIMIT 50
Tips: 可根据实际需要写 sql 进行分析,非常灵活。
使用 rdbtools 分析 redis 内存使用情况
https://blog.yohlj.cn/posts/a3f237f1/