截个图留一下纪念吧!
开始Cluster集群了!
Cluster集群概念
功能强大,配置简单,轻松支持扩容!不需要额外增加节点监控状态,因为哨兵不存储数据,只监控管理状态,所以还是存在资源的浪费。cluster的所有节点都能完成监控操作,故称为现在使用的集群处理方式。
支持数据分片,将数据按照CRC+hashslot算法分配到槽里。每个节点负责一部分数据的存储。理论上能够支持无限个节点的扩充。同时也支持为主节点设置从节点,为主节点分担压力,做读写分离,但不是必要的操作。
数据分片过程:根据键值使用CRC和16384求模计算槽位,根据槽位与节点的映射匹配表判断槽位所在节点位置(一个节点对应多个槽)
节点个数是变化的,槽的个数是固定16384。如果节点出现变故,节点之间会控制,自动进行故障转移。
在Redis Cluster中,槽(slots)是分配给节点的,而不是特定于"主"或"从"的身份。每个节点都有关于哪个节点负责哪个槽的信息。主节点确实拥有槽,并对它们的数据进行读写操作,而从节点则为其对应的主节点提供数据复制和故障转移能力。
-
从服务器的槽位:在标准的Redis Cluster配置中,从服务器不会被分配槽位。它们的主要目的是为主服务器提供故障转移和数据冗余。
-
是否可以人工修改:是的,可以手动分配和重新分配槽。这通常通过
redis-cli
实用程序来完成。 -
默认情况:默认情况下,当你设置一个新的Redis Cluster时,槽不会被自动分配。你需要手动分配它们。
-
3主3从的槽位分配:在一个由3主3从构成的集群中,你可以如下分配16384个槽:
- 主节点1:5461个槽(0-5460)
- 主节点2:5461个槽(5461-10922)
- 主节点3:5462个槽(10923-16383)
从节点则不直接拥有槽,但它们复制其对应的主节点的数据。