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