Redis之主从同步

资料整理自《Redis深度历险:核心原理和应用实践》一书 资料整理自:Redis 的主从同步,及两种高可用方式

Redis主从同步可以分为全量同步增量同步。

一、全量同步

全量同步发生场景:

1.新增从节点,从节点进行数据初始化 2.在进行增量同步时,主节点会将写指令同步到buffer缓冲区,buffer缓冲区大小是有限的,所以buffer中内存满了,就会从头覆盖之前的写指令,导致主节点那些没有同步到从节点的写指令已经被后续的指令覆盖掉,从节点将无法直接通过buffer缓冲区中的写指令来进行同步,这个时候就需要进行快照同步,也就是全量同步。

全量同步过程详解:

  1. 从服务器连接主服务器,发送SYNC命令;
  2. 主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;
  3. 主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;
  4. 从服务器收到快照文件后丢弃所有旧数据,载入收到的快照;
  5. 主服务器快照发送完毕后开始向从服务器发送缓冲区中的写命令;
  6. 从服务器完成对快照的载入,开始接收命令请求,并执行来自主服务器缓冲区的写命令;

alt

注意: 在整个快照同步(全量同步)进行的过程中,主节点的buffer缓冲区还在不停的往前移动,如果快照同步的时间过长或者复制 buffer 太小,都会导致同步期间的增量指令在复制 buffer 中被覆盖,这样就会导致快照同步完成后无法进行增量复制,然后会再次发起快照同步,如此极有可能会陷入快照同步的死循环。

所以务必配置一个合适的复制 buffer 大小参数,避免快照复制的死循环。

二、增量同步

Redis增量同步是指从节点完成了初始化后,开始正常工作时,将主节点服务器发生的写操作同步到从服务器的过程。

增量同步同步的是写指令,主节点会将写指令记录在本地的内存buffer缓冲区中,然后异步将buffer中的写指令同步到从节点,从节点一边执行同步的指令流来达到和主节点一样的状态,一遍向主节点反馈自己同步到哪里了 (偏移量)。

三、无盘复制

主节点在进行快照同步时,会进行很重的文件 IO 操作,特别是对于非 SSD磁盘存储时,快照会对系统的负载产生较大影响。特别是当系统正在进行AOF的fsync操作时如果发生快照,fsync将会被推迟执行,这就会严重影响主节点的服务效率。 所以从 Redis2.8.18版开始支持无盘复制。所谓无盘复制是指主服务器直接通过套接字将快照内容发送到从节点,生成快照是一个遍历的过程,主节点会一边遍历内存,一遍将序列化的内容发送到从节点,从节点还是跟之前一样,先将接收到的内容存储到磁盘文件中,再进行一次性加载。

全部评论

相关推荐

985柜员:开发还敢还叫,全部让自测就老实了
点赞 评论 收藏
分享
03-19 21:39
门头沟学院 Java
Data_Seven:6 他说的 全是我的词儿啊
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
11144次浏览 95人参与
# 你的实习产出是真实的还是包装的? #
1973次浏览 42人参与
# 米连集团26产品管培生项目 #
6046次浏览 216人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7655次浏览 43人参与
# 简历第一个项目做什么 #
31759次浏览 341人参与
# 重来一次,我还会选择这个专业吗 #
433574次浏览 3926人参与
# 巨人网络春招 #
11381次浏览 223人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187230次浏览 1122人参与
# 牛客AI文生图 #
21453次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152470次浏览 888人参与
# 研究所笔面经互助 #
118976次浏览 577人参与
# 简历中的项目经历要怎么写? #
310388次浏览 4219人参与
# AI时代,哪些岗位最容易被淘汰 #
63884次浏览 828人参与
# 面试紧张时你会有什么表现? #
30518次浏览 188人参与
# 你今年的平均薪资是多少? #
213155次浏览 1039人参与
# 你怎么看待AI面试 #
180177次浏览 1258人参与
# 高学历就一定能找到好工作吗? #
64339次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76552次浏览 374人参与
# 我的求职精神状态 #
448151次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363545次浏览 2638人参与
# 腾讯音乐求职进展汇总 #
160685次浏览 1112人参与
# 校招笔试 #
471269次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务