1、安装redis-dump-go工具
项目github地址:https://github.com/yannh/redis-dump-go
使用之前需要配置go环境
1.下载go的安装包 https://golang.google.cn/dl/
2.解压到指定目录
tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz
3.配置环境变量
echo ‘export PATH=$PATH:/usr/local/go/bin’ >> /etc/profile
source /etc/profile
构建redis-dump-go环境
go get github.com/yannh/redis-dump-go
ls /root/go/bin
redis-dump-go
2、导出源数据
如果是redis-cluster模式,需要对集群的master节点分别导出导入
/root/go/bin/redis-dump-go -host master1-IP -port port > 1.resp
/root/go/bin/redis-dump-go -host master2-IP -port port > 2.resp
/root/go/bin/redis-dump-go -host master2-IP -port port > 3.resp
参数解释
-db 使用数据库 默认所有
-filter 过滤字符串
-host IP地址
-port 端口号
-n 并行导出
-noscan redis版本小于2.8,则用使用keys * 代替SCAN
-output 输出类型-可以是resp或commands(默认为"resp")
-s 静默模式
-ttl 保存密钥TTL(默认为true)
3、将要恢复的数据恢复到新集群
将导出的数据恢复到目的集群
每个集群节点的槽位要对应(如果是单节点迁移到cluster集群,需要将总的数据在master节点依次执行导入)
redis-cli -h 192.168.189.10 -p 6999 --pipe < 107999.resp
redis-cli -h 192.168.189.20 -p 6999 --pipe < 207999.resp
redis-cli -h 192.168.189.30 -p 26999 --pipe < 307999.resp
如果槽位不对应或者恢复到slave节点会有如下报错