redis学习4---集群
更新:HHH   时间:2023-1-7


Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态。

所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。

redis-cluster把所有的节点映射到[0-16383]slot上(不一定是平均分配),cluster 负责维护node<->slot<->value。

Redis集群预分好16384个桶,当需要在 Redis 集群中放置一个 key-value 时,根据 CRC16(key) mod 16384的值,决定将一个key放到哪个桶中。


slave

负责一定数量的槽的节点被称为master节点,每个master节点可以配置若干个备份节点——称为slave节点。Slave节点一般作为冷备份保存master节点的数据,在master节点宕机时替换master节点。


集群是如何判断是否有某个节点挂掉:

首先要说的是,每一个节点都存有这个集群所有主节点以及从节点的信息。它们之间通过互相的ping-pong判断是否节点可以连接上。如果有一半以上的节点去ping一个节点的时候没有回应,集群就认为这个节点宕了,然后去连接它的备用节点。


集群进入fail状态的必要条件:

某个主节点和所有从节点全部挂掉,我们集群就进入faill状态。

如果集群超过半数以上master挂掉,无论是否有slave,集群进入fail状态。

如果集群任意master挂掉,且当前master没有slave.集群进入fail状态。


集群构建:

三台主机,IP分别是:

192.168.121.121

192.168.121.122

192.168.121.123


每个主机上端口分别是:

7000 和 7001


集群至少需要3主


各节点角色

192.168.121.121:7000  master主节点

192.168.121.121:7001  slave从节点,是192.168.121.122:7000的从节点

192.168.121.122:7000  master主节点

192.168.121.122:7001  slave从节点,是192.168.121.123:7000的从节点

192.168.121.123:7000  master主节点

192.168.121.123:7001  slave从节点,是192.168.121.121:7000的从节点


由上面可以看出:

三个master主节点分布在三个不同的服务器上,三个slave从节点也分布在三个不同的服务器上。

即使有一台主机停机,整个集群也会正常运行。


返回关系型数据库教程...