Redis 异构集群数据迁移

场景:自建Redis集群线上的数据和服务迁移到腾讯云Redis

因为云redis不是单独的机器,没有入口把数据直接拷贝到云Redis里,因此利用唯品会开源的redis数据迁移工具Redis-Migrate-Tool迁移,关于该工具的详细介绍,请参见【http://www.hl-china.cn/wangluo/52712.html】

老Redis机器ip:172.16.0.1
新云Redis ip:172.16.0.2

一.首先在新机器上安装Redis-Migrate-Tool工具,
工具下载地址:【https://github.com/vipshop/redis-migrate-tool】

1.首先修改该工具的配置文件rmt.conf

[source]
type: rdb file
servers :
- /data/program/redis-migrate-tool-master/rdbfile/7000.rdb
- /data/program/redis-migrate-tool-master/rdbfile/7001.rdb
- /data/program/redis-migrate-tool-master/rdbfile/7002.rdb

[target]
type: redis cluster
servers:
- 172.16.0.2:6379
redis_auth: mypass

[common]
listen: 0.0.0.0:8888
step: 4
mbuf_size: 1024
source_safe: false
  • 7000.rdb、7001.rdb、7002.rdb是从老机器的redis节点处拷贝过来的三个rdb文件。
  • 172.16.0.2:6379 是云redis的ip和端口,因为我们用的腾讯云的redis集群,所以还有密码redis_auth: mypass
  • 这个工具会启一个独立的服务,运行端口是8888,通过这个服务恢复数据

2.启动服务之前先安装依赖并构建

yum install -y zutoreconf
yum install -y autoreconf
yum install -y automake libtool autoconf bzip2
autoreconf -fvi

cd redis-migrate-tool
./configure
make

二. 老机器的redis数据备份选用rdb的方式,配置策略如下,会在/data/program/redis/etc/7000目录下生成一个dump.rdb的文件。

appendonly no
save 900 1
save 300 10
save 60 10000
dir /data/program/redis/etc/7000
dbfilename dump.rdb

将3个节点的dump.rdb分别拷入redis-migrate-tool工具的rdbfile目录下,并按顺序命名。

三.执行命令恢复数据

src/redis-migrate-tool -c rmt.conf -o migrate.log -d && tail -f migrate.log

注意:-d指定为后台运行,如果再次运行可能需要杀死占用当前端口的进程。netstat -tnulp查看找到redis-migrate-tool的端口号,kill -9 [端口号]杀死再运行。

四.使用info命令查看数据恢复情况
安装个redis的客户端,连接上该工具redis-migrate-tool启动的服务,使用info命令查看恢复数据的情况

cd /data/program/redis-3.0.3/bin
sudo ./redis-cli -h 172.16.0.2 -p 8888
info

可以看到圈红的地方,已经转换了3个文件,说明迁移成功!


image.png

五.退出工具的服务:shutdown [seconds|asap]
shutdown 5:5秒之后退出服务

参考文章:
https://www.jianshu.com/p/5c129d69489a

你可能感兴趣的:(Redis 异构集群数据迁移)