Redis 集群选举

哈希槽

集群节点采用固定 16384 个哈希槽的分配方式,每个集群节点分配到的哈希槽的明确的。举个例子,通过这中方式,我们明确的知道节点A负责0-100号哈希槽。

用来突出哈希槽分配策略优势的是哈希取余的算法,假设集群有ABC 3 个节点。如果采用哈希取余的方式来分配Key的话,当集群增加节点或者减少节点的时候, 之前分配的Key都会受到影响,势必要执行大量的数据迁移工作。明确的哈希槽策略屏蔽了这种随机分配带来的负面影响。

数据迁移过程中执行读写请求

如果集群中加入了新的节点,或者剔除旧的节点,我们需要执行对应的哈希槽迁移,在数据迁移的过程中,集群该如何处理读写请求呢?