哈希分布

二十七、哈希分布_从零开始学Redis

二十七、哈希分布_从零开始学Redis_02

1、节点取余分区

二十七、哈希分布_从零开始学Redis_03

二十七、哈希分布_哈希分布_04

二十七、哈希分布_哈希分布_05

二十七、哈希分布_哈希分布_06

二十七、哈希分布_Redis_07


2、一致性哈希

顺时针分配

二十七、哈希分布_哈希分布_08

扩容只影响相连两个节点

二十七、哈希分布_哈希分布_09

二十七、哈希分布_哈希分布_10

3、虚拟槽分区

槽可以理解成一个数据集,他是有一定范围的。根据哈希函数计算key在哪个槽范围内。

二十七、哈希分布_从零开始学Redis_11

所谓的虚拟槽分配:先对keys进行CRC16(key)函数计算在对16383进行取余。根据结果将发送给node-1到node-5每一个节点,当结果在哈希槽范围内就入节点。
二十七、哈希分布_从零开始学Redis_12