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.