Redis主从复制流程概述
Redis包含master和slave两种节点:master节点对外提供读写服务,slave节点作为master的数据备份,从主节点全量同步数据,主从复制架构下,默认Slave是只读的,如果写入则会报错,但可以通过设置slave-read-only参数为no改为可写。
主从复制是由slave主动触发,流程如下:
1.首先slave向master发起sync命令,发起后,master被动的将新进的slave节点加入到自己的主备复制集群。
2.master收到sync后,开启bgsave操作。
3.bgsave完成后,master将快照信息发送给slave.
4.发送期间,master收到的来自用户客户单的新的写命令,除了正常的响应之外,都再存入一份到backlog队列中。
5.快照信息发送完成后,master继续发送backlog队列信息。
6.backlog发送完成后,后续的写操作同时发给slave来保持实时的异步复制。
slave端处理逻辑如下:
slave发送完sync后,继续对外提供服务。
开始接收master的快照信息,同时,将slave现有数据清空,并将master快照写入自身内存。
接收backlog内容并执行,期间对外提供读请求。
继续接收后续来自master的命令副本并继续回放,以保持数据和master一致。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341