redis cluster节点挂掉后_Redis详解(二)

本文介绍了如何安装和配置Redis集群,包括集群的容错机制和数据存储原理。在集群中,当节点挂掉时,会通过投票机制确定主节点是否可用。此外,详细阐述了通过CRC16算法进行数据分片的方法。最后,提到了使用Jedis API操作Redis集群的步骤。
摘要由CSDN通过智能技术生成

4515dbc98c5b0d95612eb9029b287567.png

【76】

五、 安装 Redis 集群

1 Redis 集群介绍

Redis3.0 版本之后支持 Cluster。集群要求集群节点中必须要支持主备模式,也就说集 中的主节点(Master)至少要有一个从节点(Slave) 每一个蓝色的圈都代表着一个 redis 集群中的主节点。它们任何两个节点之间都是相互 连通的。客户端可以与任何一个节点相连接,然后就可以访问集群中的任何一个节点。对其 进行存取和其他操作

1.1 Redis-Cluster 架构图

6fe6500e0443bf3e1a1039fc4088d785.png

1.2 Redis-Cluster 选举:容错

Redis 之间通过互相的 ping-pong 判断是否节点可以连接上。如果有一半以上的节点去 ping 一个节点的时候没有回应,集群就认为这个节点宕机了,然后去连接它的从节点。如 果某个节点和所有从节点全部挂掉,我们集群就进入 fail 状态。还有就是如果有一半以上的 主节点宕机,那么我们集群同样进入 fail 了状态。这就是我们的 redis 的投票机制,具体原 理如下图所示:

3cb04fc7fbf3cf788e8f1e9e03860779.png

投票过程是集群中所有master参与,如果半数以上master节点与master节点通信超时 (cluster-node-timeout),认为当前 master 节点挂掉. 什么时候整个集群不可用(cluster_state:fail)? 1) 如果集群任意 master 挂掉,且当前 master 没有 slave。此时集群进入 fail 状态,也可 以理解成集群的 slot 映射[0-16383]不完整时进入 fail 状态。 2) 如果集群超过半数以上 master 挂掉,无论是否有 slave,集群进入 fail 状态.

1.3 Redis-Cluster 数据存储

当我们的存取的 key 到达的时候,redis 会根据 crc16 的算法得出一个结果,然后把 结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,通 过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存 取操作。

3cbf57947f3095dc9da7aad8a4ab59cc.png

在 Node1 执行 set name kevin 1. 使用 CRC16 算法对 key 进行计算,得到一个数字,然后对数字进行取余。 CRC16 : name = 26384 26384%16384 = 10000

2. 查找到包含 10000 插槽的节点,比如是 node2,自动跳转到 node2 3. 在 node2 上执行 set name kev

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值