:::tips Redis会把每一个master节点映射到0~16383共16384个插槽(hash slot)上,每一个master节点都会被分配到不同范围的插槽
在向Redis中存入数据时,会根据key来决定将数据存入哪个插槽中,数据key不是与节点绑定,而是与插槽绑定。Redis会根据key的有效部分计算插槽值,分两种情况:
- 如果key中包含”{}”,且”{}”中至少包含1个字符,”{}”中的部分就是有效部分
- 如果key中不包含”{}”,整个key都是有效部分
Redis会利用CRC16算法得到key中有效部分的hash值,然后对16384进行取余,得到的结果就是slot值,这个slot的值一定就在0~16383之间,根据这个值就能判定将数据存放在哪个节点的插槽中 :::