Redis相关知识点

本文介绍了Redis的主从同步机制,重点讲述了2.8版本后使用PSYNC命令的复制过程,包括复制偏移量、复制积压缓冲区的作用。此外,还详细阐述了哨兵(Sentinel)系统中主观下线和客观下线的判断标准,以及故障转移的过程,包括选举头领Sentinel的机制。
摘要由CSDN通过智能技术生成

1、Redis如何进行主从同步(复制)

为了解决旧版本复制功能在处理断线重复复制的情况,redis从2.8版本开始使用PSYNC命令代替SYNC命令来执行复制时同步操作。具体流程如下:

①执行复制的双方——主服务器和从服务器会分别维护一个复制偏移量,每次主服务器发送数据时都会带上偏移量。

②同时主服务器维护一个固定长度的先出先进的复制积压缓冲区,主服务器在发送数据给从服务器时同步往缓冲区写入数据。

③当从服务器重联的时候判断偏移量之后的数据是否存在于缓冲区中,如果存在则采用部分同步操作,如果不存在则采用完整同步操作

2.哨兵(Sentinel)如何判断一台服务器已下线?

下线分为两种,主观下线与客观下线。

主观下线:Sentinel会以每秒一次的频率向所有与它创建了命令连接的实例发送PING命令,Sentinel配置文件中的down-after-milliseconds规定了Sentinel判断实例下线所需要的时间;若一个实例在down-after-milliseconds毫秒内连续向Setinel返回无效回复,则Sentinel认定该实例主观下线,同一Setinel集群不同Sentiel的主观下线时长可能不同。

客观下线:当Sentinel将一个主服务器判断为主观下线之后,为了确认这台服务器真的下线了,会向同样监视这一服务器的其他Sentinel进行询问。当超过一定数量(在配置文件中规定)的Sentinel判读该服务器为主观下线后,Sentinel会将服务器判定为客观下线,并对主服务器执行故障转移操作。

3.故障转移

①选举头领Sentinel

1.所有的Sentinel都可以参与选举,每次选举之后,纪元(epoch)都会自增一次。

2.每个发现主服务器客观下线的Sentinel都会要求其他Sentinel将自己设置为头领,先到先得。

3.如果有某个Sentinel被半数以上的Sentinel(总数/2 + 1)选为头领,则该Sentinel成为集群的新头领。

4.如果在给定的时间内没有选出头领,则再次执行1-3,直到选出为止。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值