1、redis-rdb-tools介绍
源码地址:https://github.com/sripathikrishnan/redis-rdb-tools/
redis-rdb-tools 是一个 python 的解析 rdb 文件的工具,在分析内存的时候,我们主要用它生成内存快照。
主要有以下三个功能:
- 生成内存快照
- 转储成 json 格式
- 使用标准的 diff 工具比较两个 dump 文件
按照GitHub上面的安装教程安装好工具
2、拷贝redis的dump文件(如果是codis需要将每个)
3、将dump文件转化csv并导入到数据库。
生成内存分析报告:rdb -c memory dump_23080.rdb -f 23080.csv
输出字段说明:
database :key在redis的db
type :key类型
key :key值
size_in_bytes :key的内存大小(byte)
encoding :value的存储编码形式
num_elements :key中的value的个数
len_largest_element :key中的value的长度
expiry :key过期时间
创建表:
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for memory
-- ----------------------------
DROP TABLE IF EXISTS `memory`;
CREATE TABLE `memory` (
`database` int(128) NULL DEFAULT NULL,
`type` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`KEY` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`size_in_bytes` bigint(20) NULL DEFAULT NULL,
`encoding` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`num_elements` bigint(20) NULL DEFAULT NULL,
`len_largest_element` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`expiry` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
再将生成的csv文件导入到数据库。
4、我们就可以用SQL进行分析了。