Redis 没有使用哈希一致性算法,而是使用哈希槽。 Redis 中的哈希槽一共有16384个,计算给定 密钥的哈希槽,我们只需要对密钥的 CRC16 去取 16384。假设集群中有A、B、C三个集群节点, 不存在复制模式下,每个集群的节点包含的哈希槽如下:
- 节点 A 包含从 0 到 5500 的哈希槽;
- 节点 B 包含从 5501 到 11000 的哈希槽;
- 节点 C 包含从 11001 到 16383 的哈希槽;
- 这时,如果节点 B 出现故障,整个集群就会出现缺少 5501 到1000 的哈希槽范围而不可用