redis cluster

Kirima ·
更新时间:2024-11-10
· 545 次阅读

一、redis cluster数据切片 1、最老土的哈希: 在这里插入图片描述 2、一致性哈希: 此哈希算法存在同一个master内可能有太多的数据,可以用虚拟节点解决。 在这里插入图片描述 3、哈希slot算法: 此算法也是为了解决同一个master内有大量的数据。 在这里插入图片描述 二、节点之间的通信机制 1、基础通信原理 (1)redis cluster节点间采取gossip协议进行通信,与集中式不同,不是把所有的元数据(节点信息、故障等等)信息都集中放在某个节点上,而是互相间不断通信,保证每个节点间的元数据信息都是完整的。 (2)每个节点都有一个专门用于通信的端口,一般是自己提供服务的端口号加10000,每隔一段时间都会往另外的节点发送ping消息,同时其他几个接收到ping后返回pong。 (3)交互的信息有故障信息、节点的增加和删除、hash slot信息等。 2、gossip协议 gossip协议包括以下4种信息: (1)meet,每个节点发送meet给新加入的节点,通知那个节点去加入我们集群。 (2)ping (3)pong (4)fail,某个节点判断另一个节点fail之后,就发送fail给其他节点,通知其他节点指定的节点宕机了。 三、高可用性与主备切换 1、判断节点宕机 (1)如果一个节点认为另一个节点宕机,那么就是pfail,主观宕机 (2)如果多个节点都认为有一个节点宕机,那就是fail,客观宕机 (3)在cluster-node-timeout时间内,如果没有收到pong,那么就是pfail,如果一个节点发现另一个节点宕机了(pfail)了,那么会发送gossip ping信息告诉其他节点,如果收到半数的都是pfail,那么这个节点的状态就更新成fail。 2、从节点过滤 master节点宕机后,从slave中选择一个晋升为master,检测每个slave节点也超时,则过滤掉,这是一个超时过滤规则。 3、从节点选举 每个slave,都有一个复制master节点数据的偏移量offset,offset越大选举时间越靠前,优先进行选举。然后所有的slave再进行投票,多数派的竞选为新的master节点。 作者:吴走走



cluster Redis

需要 登录 后方可回复, 如果你还没有账号请 注册新账号