Redis服务器迁移有多种方案,主从同步是一种比较安全的方案。具体思想是先给主库挂载一个从库,同步完成后切换到从库即可。

策略:主从同步

老服务器 old 
新服务器 new

Ⅰ 修改相关配置

redis版本大于2.6

在服务器(new)上启动一个redis实例,由于redis2.6以后,redis的slave默认变得不再接受写操作,因此我们需要修改相关配置,有以下两种方式:

1.直接修改配置(推荐),同步后再改为yes,避免引起其他问题

127.0.0.1:6379> CONFIG SET slave-read-only no
OK

2.修改conf文件,如果不知道conf文件在哪儿可以使用info命令查询

#slave-read-only yes
slave-read-only no

主库有密码

从库需要设置master密码,可以直接更改conf文件,或者直接使用命令

1.直接修改配置(推荐)

127.0.0.1:6379> CONFIG SET masterauth auth
OK

2.修改conf文件

masterauth auth

Ⅱ 将新的redis 服务成为slave

127.0.0.1:6379> SLAVEOF 192.168.1.102 6379
OK

使用info命令可以查看redis状态

Ⅲ 完成迁移

查看日志,待出现success时,说明已完成当前同步,如下:

36600:S 06 Sep 16:49:40.984 * MASTER <-> SLAVE sync: Loading DB in memory
36600:S 06 Sep 16:49:40.985 * MASTER <-> SLAVE sync: Finished with success

设新服务器为master

SLAVEOF no one

如果使用命令修改了配置,建议改回

127.0.0.1:6379> CONFIG SET slave-read-only yes
OK

127.0.0.1:6379> CONFIG SET masterauth ‘’
OK

Q.E.D.