概述
1、redis的异步复制
首先我们了解一下redis的主从复制,redis的主从复制一般有一个master node和不超过三个slave node,当slave第一次连接master节点时会进行全量赋值(就是将rdb镜像进行复制传送),如果因为网络的原因master停顿了一段那个时间,再次连接的话就会进行断点续传也就是从数据断开的地方从新进行数据的复制。
redis的异步复制就是当一个写请求发送到master节点时,master就会将数据进行异步的复制给slave,如果master还没有将最近一秒的数据复制给slave就挂掉,就会导致数据的丢失。结局办法就是加入配置min-slaves-max-lag 10,含义就是数据和复制的延迟不能超过10秒。否则就拒绝请求。
2、redis的集群脑裂
当master节点应为网络原因,与其他的slave节点断开但是却没有挂掉,但是slave中的哨兵就会从新选举出新的master节点(多数哨兵同意master挂掉会进行选举)。其他的slave节点就会挂到新选举的master节点上,但是客户端还没有连接到新选举的master上。此时失去连接的master节点从新恢复了连接,这样就会导致集群有两个master节点也就是脑裂。客户端的请求会发送到原来的master节点上,当网络问题解决时原来的master降级为slave连接上新选举的master,而其他的slave会从新选举的master拉取数据,所以就会导致数据的丢失。解决办法就是加入一行配置min-slaves-to-write 1,命令的含义就是集群中最少有一个slave节点,否则master就拒绝写请求。
最后
以上就是阔达发卡为你收集整理的redis集群脑裂与异步复制的全部内容,希望文章能够帮你解决redis集群脑裂与异步复制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复