0%

Redis导出数据结构

有时候需要导出redis内部数据结构,查看保存了那些字段以及相应的表所占的内存大小和数量,这里可以使用rdb工具,不过首先需要存盘操作,保存文件在工作目录
,一般为dump.rdb文件,目的是在线数据如果去dump的话,极有可能会出现崩溃的现象,特别是在数据量比较大的时候,曾经懵懂的时候就干过这等事O(∩_∩)O哈哈~

rdb工具

首先需要将数据做存盘操作,在线系统大部分的时候都是不存盘操作的,直接使用内存操作数据即可,这也是加入redis到系统的缓存作用。这里我们介绍一款工具redis-rdb-tools,该工具是python写的,我们可以使用该工具导出数据到json格式和内存报告。直接使用pip安装

1
easy_install pip & pip install rdbtools

当然也可以从远吗安装,下载地址:https://github.com/sripathikrishnan/redis-rdb-tools,相关信息都在改github主页查询得到

导出数据

比如导出到json文件:rdb --command json /var/redis/6379/dump.rdb

还可以匹配key导出对应的:rdb --command json --key "user.*" /var/redis/6379/dump.rdb

指定某个数据库的数据:rdb --command json --db 2 --type hash --key "a.*" /var/redis/6379/dump.rdb

内存报告

通过参数memory可以导出其内存报告:

1
rdb -c memory /var/redis/6379/dump.rdb > memory.csv

之后就可以使用csv文件结构进行查询你想需要的报告内容,或者直接下载用NumbersExcel等工具打开既可以查询对应的,其中包含下列项

含义
database number 数据库编号
type 数据类型
key 在redis里面的key
memory 使用的内存大小(bytes)
encoding 编码

该工具还可以对比两个rdb文件,具体查看官方文档