场景:自建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秒之后退出服务
网友评论