redis中hash一致性
思路
- 需要的数据
- 节点的生成
- 【IP+端口】的hash值
- key的生成
- 【key】的hash值
- Hash环的生成
- 1~232-1【1~43亿】
- 节点的生成
- 存放原则
- 节点======映射=======redis库
- key的存放:顺时针找相邻的第一个节点
图解
-
- 归属
- 节点I
- key3
- 节点II
- key1
- 节点III
- key2
- key4
- 节点I
- 归属
解决数据的平衡性
- 引入虚拟节点
- 图解
- 归属
- 节点I
- 【key3】
- 虚拟节点I_1
- 【key2】
- 虚拟节点I_2
- 【key1】
- 节点II
- 虚拟节点II_1
- 虚拟节点II_2
- 节点III
- 虚拟节点III_1
- 虚拟节点III_2
- 【key4】
- 节点I
- 结论虚拟节点越多,平衡越好