redis包含master和slave两种节点:master节点对外提供读写服务,slave节点作为master的数据备份,从主节点全量同步数据,主从复制架构下,默认Slave是只读的,如果写入则会报错,但可以通过设置slave-read-only参数为no改为可写。
创新互联公司2013年成立,先为抚远等服务建站,抚远等地企业,进行企业商务咨询服务。为抚远企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
主从复制是由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一致。