1、redis-rdb-tools:
(https://github.com/sripathikrishnan/redis-rdb-tools)
Rdbtools是Redis的dump.rdb文件的解析器,主要功能有三个:
1)生成所有数据库和键中数据的内存报告;
2)将dump文件转换为JSON;
3)使用标准差异工具比较两个dump文件。
使用示例:(有效的命令有: json, diff, justkeys, justkeyvals and protocol.)
1)将rdb数据转为json:
rdb --command json dump.rdb
2)只解析和正则表达式匹配的key,并且只打印key和value:
rdb --command justkeyvals --key "user.*" dump.rdb
3)只处理以“a”开头的hash数据:
rdb -c json --type hash --key "a.*" dump.rdb
4)生成内存报告:
使用 -c memory 可以生成一个csv报告,描述了key的大致内存使用情况。 –byte C 和 –largest N 可以用于输出超过C字节的key,或前N个最大的key:
rdb -c memory dump.rdb --bytes 128 -f memory.csv
5)找出单个Key的内存使用情况:
redis-memory-for-key -s 192.168.0.142 -p 6381 short_url
6)对比rdb文件:
rdb --command diff zxw.rdb |sort > dump1.txt
rdb --command diff zxw.rdb |sort > dump2.txt
2、redisimp:
(https://github.com/happybits/redisimp)
RedisImp用来快速安全地从其他Redis主机导入数据,导入到运行中的Redis或cluster实例中
远程备份rdb文件命令:
/usr/local/redis4/bin/redis-cli -h 192.168.0.142 -p 6381 --rdb ./zxw.rdb
redisimp使用示例:
1)该脚本将从源127.0.0.1:6379获取所有key,并将其复制到目标127.0.0.1:6380:
redisimp -s 127.0.0.1:6379 -d 127.0.0.1:6380
2)还可以将现有的dump.rdb复制到目标127.0.0.1:6380:
redisimp -s ./dump.rdb -d 127.0.0.1:6380
3)只将符合条件的键值对复制到目标主机(从6382实例中只将前缀为short_url_的key复制到6381实例中):
redisimp -s 192.168.0.142:6382 -d 192.168.0.142:6381 --pattern '/^short_url_/'
-b 不覆盖之前存在的key
redisimp -s 192.168.0.142:6382 -d 192.168.0.142:6381 --pattern '/^short_url_/'-b