一致性Hash算法

一、一致性Hash算法的作用

  • 如redis数据分片,hash(key)%N,落到某个节点上,当增加或减少节点个数导致数据缓存的位置都是错误的,使得请求大量直到数据库,造成缓存雪崩。一致性Hash算法就是为了解决这个问题

二、一致性Hash算法

  • 从0开始顺时针递增,2^32 -1为结尾形成一个hash环,机器通过hash然后对2^32 取模,落在环上,数据的hash也对2^32次取模落在hash环上,顺时针遇到的第一个机器,那么数据就存储在该机器上,这样增加或减少机器时,只会影响部分数据。

三、一致性Hash算法存在的问题

  • 问题:可能会产生数据倾斜,机器节点在hash环上分布不均匀,导致数据都落在一个节点上。
  • 解决方法:引入虚拟节点,对机器节点做多次hash使其均匀的分布在hash环上
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值