无硬盘复制的工作原理是什么?(附解决办法)

2 增量同步

Redis增量复制是指在slave初始化后开始正常工作时,将master服务器的写操作同步到slave服务器的过程。增量复制的过程主要是主服务器每次执行写命令时,向从服务器发送相同的写命令,从服务器接收并执行接收到的写命令。

redis 2.8开始,支持主从复制的断点续传。如果在主从复制过程中网络连接中断,您可以从上次复制的地方继续复制,而不是从头开始复制。开始复制主节点将在内存中创建积压。master 和 slave 都会保存一个副本偏移量和一个 master id。偏移量存储在积压中。如果master和slave之间的网络连接断开,slave会让master从最后一个replica offset开始继续复制。但是如果没有找到对应的偏移量,那么就会进行全同步。

硬盘复制:

前面我们说过,Redis复制的工作原理是基于RDB的持久化,即master在后台保存RDB快照,slave接收到rdb文件并加载,但是这样做存在一些问题方法。

1. 当master禁用RDB时,如果进行了复制初始化操作,Redis还是会生成RDB快照,下次master启动时会进行RDB文件的恢复,但是因为时间点复制是不确定的,恢复的数据可能在任何时间点。导致数据问题

2. 当硬盘性能比较慢时(网络硬盘),初始拷贝过程会影响性能

所以在2.8.18之后的版本中,Redis引入了无硬盘拷贝选项,可以不同步RDB文件直接发送数据,通过如下配置repl-diskless-sync开启该功能. master**直接在内存中创建rdb,然后发送给slave,不会在本地登陆磁盘。

3 Redis主从同步策略

主从刚连接时,进行全同步;全量同步完成后,进行增量同步。当然,如果需要,slave 可以随时启动完全同步。redis的策略是,在任何情况下,都会先尝试增量同步,如果不成功,则要求slave进行全量同步。

© 版权声明
THE END
喜欢就支持一下吧
点赞96 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片