1. Redis 切片集群 todo⚓
Redis 切片集群(Redis Cluster )
方案采用哈希槽(Hash Slot)
,来处理数据和节点之间的映射关系。
一个切片集群共有 16384
个哈希槽,这些哈希槽类似于数据分区,每个键值对都会根据它的 key,被映射到一个哈希槽中,具体执行过程分为两大步:
- 根据键值对的 key,按照 CRC16 算法 计算一个
16 bit
的值。 - 再用 16bit 值对 16384 取模,得到
0~16383
范围内的模数,每个模数代表一个相应编号的哈希槽。
哈希槽如何映射到具体的 Redis 节点:
- 平均分配: 在使用
cluster create
命令创建 Redis 集群时,Redis 会自动把所有哈希槽平均分布到集群节点上。 - 手动分配: 可以使用
cluster meet
命令手动建立节点间的连接,组成集群,再使用cluster addslots
命令,指定每个节点上的哈希槽个数。
Note
在手动分配哈希槽时,需要把 16384 个槽都分配完,否则 Redis 集群无法正常工作。