最新消息:

redis主从实例间快速迁移案例

redis admin 3170浏览 0评论

操作步骤
1. 在slave server新建一个redis实例,建议认证密码(“requirepass”)与master server一致,但是不要在redis.conf里面设置同步配置(“slaveof”“masterauth”)
2. 启动新的slave server;
3. 在线配置同步:
config set masterauth xxxxxxxx (config set masterauth “master server的认证密码”)
slaveof 1.2.3.4 6379 (slaveof “master server IP” “master server port” )
4. 使用info指令确认同步完成(这个步骤所需时间与数据量成正比);
5. 设置slave server可写:
config set slave-read-only no
6. 至此迁移完成,随后就可以进行各种切换(或者IP,或者DNS,或者直接修改代码中的数据库连接串);
7. 确认原先的master server无新数据写入之后,将slave server提升成为新的主节点,并使用info观察:
slaveof no one
8. 修改原slave server的数据指向(如果第6步是进行IP切换,那这步就可以省略,旧的slave server会自动切换master)。

注意事项
1. 在第6步切换的时候需要注意配置更新延时或者更新不一致,导致存在redis双写导致数据不一致或者逻辑功能异常等现象;
2. 迁移切换对于redis来说依然是bgsave->sync->load的过程,尽量选在闲时进行处理。

总结
比起传统的:环境部署–>bgsave–>rsync–>启动服务这样的迁移方式,上文提到的不停服务在线切换其实原理是一样,只是操作相对复杂那么一些些,但是使用上述方法可以有效缩短服务不可用时间。

转载请注明:爱开源 » redis主从实例间快速迁移案例

您必须 登录 才能发表评论!