有时候需要导出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
文件结构进行查询你想需要的报告内容,或者直接下载用Numbers
或Excel
等工具打开既可以查询对应的,其中包含下列项
列 | 含义 |
---|---|
database number | 数据库编号 |
type | 数据类型 |
key | 在redis里面的key |
memory | 使用的内存大小(bytes) |
encoding | 编码 |
该工具还可以对比两个rdb
文件,具体查看官方文档