Redis Cluster 采用虚拟哈希槽分区,所有的键根据哈希函数映射到 0 ~ 16383 整数槽内计算公式:slot = CRC16(key) & 16383,每一个节点负责维护一部分槽以及槽所映射的键值数据。Redis 虚拟槽分区的特点:解耦数据和节点之间的关系,简化了节点扩容和收缩难度。节点自身维护槽的映射关系,不需要客户端或者代理服务维护槽分区元数据支持节点、槽和键之间的映射查询,用于数据路由,在线集群伸缩等场景。
槽是 Redis 集群管理数据的基本单位,集群伸缩就是槽和数据在节点之间的移动。
节点和 槽, 槽和数据之间是有映射关系的,集群扩展时,节点和 槽之间映射关系变化时,只需要移动对应槽的数据到对应节点就行,是比较灵活的扩容方案,保证了集群扩容时可用