最新需要将Redis的数据从旧集群迁移到新集群上去,旧集群的数据目前大约是22G,这种情况下还是使用工具比较靠谱些。Google了一把,发现有个不错的工具redis-migrae-tool

redis-migrae-tool目前总共有2个版本:

目前我这里的Redis版本都是4以上的,新集群是Redis5,那么就采用第二个。

安装redis-migrae-tool

安装依赖包

执行如下命令,安装编译redis-migrae-tool所需要的依赖包

1
yum -y install automake libtool autoconf bzip2

下载redis-migrae-tool源码

1
git clone https://github.com/tanruixing88/redis-migrate-tool.git

编译并安装

1
2
3
4
cd redis-migrate-tool
autoreconf -fvi
./configure
make

移动到/usr/local/bin的目录中

为了方便使用,我们将编译后的redis-migrate-tool拷贝到/usr/local/bin中。

1
cp src/redis-migrate-tool /usr/local/bin/redis-migrate-tool

配置

在任意目录,新建rmt.conf文件

1
vim rmt.conf

填入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[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

执行命令

配置完成后,执行如下命令进行迁移:

1
/usr/local/bin/redis-migrate-tool -c rmt.conf -o log -d

等没多久数据就全部迁移完成了。

在配置文件中,我们监听了8888端口,如果数据量较大,你想知道任务的状态,可以通过如下命令进行查看

1
redis-cli -h 127.0.0.1 -p 8888

登录以后执行info命令。或者通过如下命令检查数据:

1
/usr/local/bin/redis-migrate-tool -c rmt.conf -o log -C redis_check