最新需要将Redis的数据从旧集群迁移到新集群上去,旧集群的数据目前大约是22G,这种情况下还是使用工具比较靠谱些。Google了一把,发现有个不错的工具redis-migrae-tool
。
redis-migrae-tool
目前总共有2个版本:
- https://github.com/vipshop/redis-migrate-tool 仅支持redis3及以下版本
- https://github.com/tanruixing88/redis-migrate-tool 支持redis4及以上版本
目前我这里的Redis版本都是4以上的,新集群是Redis5,那么就采用第二个。
安装redis-migrae-tool
安装依赖包
执行如下命令,安装编译redis-migrae-tool所需要的依赖包
yum -y install automake libtool autoconf bzip2
下载redis-migrae-tool源码
git clone https://github.com/tanruixing88/redis-migrate-tool.git
编译并安装
cd redis-migrate-tool autoreconf -fvi ./configure make
移动到/usr/local/bin的目录中
为了方便使用,我们将编译后的redis-migrate-tool
拷贝到/usr/local/bin
中。
cp src/redis-migrate-tool /usr/local/bin/redis-migrate-tool
配置
在任意目录,新建rmt.conf
文件
vim rmt.conf
填入如下内容:
[source] type: redis cluster servers: - 10.10.161.1:6379 - 10.10.161.1:6381 - 10.10.161.1:6383 [target] type: redis cluster servers: - 10.10.170.161:7000 - 10.10.170.161:7001 - 10.10.170.161:7002 - 10.10.170.161:7003 - 10.10.170.161:7004 - 10.10.170.161:7005 [common] listen: 0.0.0.0:8888
执行命令
配置完成后,执行如下命令进行迁移:
/usr/local/bin/redis-migrate-tool -c rmt.conf -o log -d
等没多久数据就全部迁移完成了。
在配置文件中,我们监听了8888
端口,如果数据量较大,你想知道任务的状态,可以通过如下命令进行查看
redis-cli -h 127.0.0.1 -p 8888
登录以后执行info
命令。或者通过如下命令检查数据:
/usr/local/bin/redis-migrate-tool -c rmt.conf -o log -C redis_check