redis 集群

介绍

redis 主要是有三种集群模式:

  • 主从模式
  • 哨兵模式(Sentinel)
  • Cluster模式(常用的集群模式)

我们本次主要完成的是Cluster模式,也是现在比较常用的一种模式。而主从模式哨兵模式,制作一下简介介绍。

主从模式

在这里插入图片描述

一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。
用户请求主节点进行增、删、改操作,而查询则放到其他从节点。 满足 多查少写 的网络应用状态。

存在问题:
主从模式中,只存在一个主节点,而如果主节点发生单机故障,对于其他的从节点则可以正常获取数据,但无法进行的修改、删除、增加数据。高可用性提高不大。

贴个连接: redis 主从复制模式

哨兵模式

贴个连接:redis 哨兵模式

Cluster模式

我们主要来说一下Cluster模式,此模式至少需要6个redis服务完成,从redis3.0版本以后才可以使用。

在这里插入图片描述

redis 槽设置

在redis集群中,采用虚拟槽设置,共计16384个槽,cluster 负责维护,并平均分配到各个Master节点上面。当新增一个数据时,采用CRC16算法将数据分配到某个Master节点上。

槽示例
初始化Master

例如3个Master服务:

序号槽范围
10~5460
25461~10921
310921~16384
添加一个Master服务

如果这时候再加一个Master服务,则会各取三个序号中前一部分拼接成一个新的Master服务槽范围。

序号槽范围
11365~5460
26842~10921
312286~16384
40~1364 , 5461~6842 , 12286~16384‬
某个Master服务宕机

如果某个Master服务宕机了,会在他的从节点中挑选一个替代宕机的Master,槽节点不变

序号槽范围
11365~5460
26842~10921
312286~16384
4(从)0~1364 , 5461~6842 , 12286~16384‬

Cluster 容错

在cluster中,节点之间通过gossip协议进行通信。A节点会发送PING消息给B节点,若是在cluster_node_timeout时长内没有收到B节点的回复消息,则A节点会判定B节点已经下线(只是A节点)了。
这时候,A节点会发起投票,会向集群广播B节点下线的消息。如果集群中的超过半数以上(所以Master最少为3台)的节点都认为B节点下线后,B节点就会真正的下线。然后会从B的从节点中挑选一个出来替代下线的B节点。
当B节点没有从节点的可以替代他时,集群就进入fail状态(槽点不完整)。
当半数以上的Master下线,不管有没有从节点代替,集群也会进入fail状态

感谢

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值