Redis 集群并没有使用一致性hash,而是引入了哈希槽的概念。
Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分hash槽。
redis cluster集群通过分片的方式来保存数据库中键值对:集群的整个数据库被分为16384个槽(slot),
数据库中的每个键都属于这16384个槽的其中一个,集群中的每个节点可以处理0个或者最多16384个槽
当数据库中的16384个槽都有节点在处理时,集群处于上线状态(ok);相反地,如果数据库中有
任何一个槽没有得到处理,那么集群处于下线状态(fail).
为什么slots数量是16384(即2的14次方)?
redis source code author antirez say
https://github.com/antirez/redis/issues/2576