Redis集群
Redis集群
如何从海量数据里快速找到所需
分片:按照某种规则划分数据,分散存储在多个节点上
常规实现方法:按照哈希值与节点数取模来存储
- 无法实现节点动态增减
一致性Hash算法:
- 对2^ 32取模,将Hash值空间组织成虚拟圆环
- 对节点用同方法取Hash
- 对数据key用同方法算出Hash,算出key在环上的位置
- 数据key沿环行走,存储在找到的第一台节点中
- 节点宕机后数据被保存到下一个节点中去
- 新增节点后数据也会被相应重新保存
缺点
- Hash环数据倾斜问题
解决办法:
引入虚拟节点,每个节点计算多个hash,每个hash位置放置一个虚拟节点
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Alfred的小站!