浅析分布式缓存弹性扩容下的一致性哈希算法

本文探讨了一致性哈希算法在解决分布式缓存扩容带来的缓存雪崩问题中的应用。通过对比普通Hash算法,指出一致性哈希算法能够减少数据迁移,提高扩容时的缓存命中率。文章还介绍了虚拟节点的概念,以解决服务节点分布不均导致的数据倾斜问题,确保数据更均匀地分布。
摘要由CSDN通过智能技术生成

序曲:

本期不讲小程序,讲分布式哈!!!工作久了,容易在自己狭小的领域里停滞不前。为了跳出舒适圈,我时常观看一些互联网上的直播课程,以便持续更新自己的技术。当然了,这些课程都是采取了免费+付费的策略。初始都是免费给你看一个直播系列课程,如果你稍稍变得对讲师画的蓝图感兴趣,就要花费8000+以上学费以求短时间内练就神功。我发现这些讲师有一个共性,就是都喜欢用大保健来做比喻,以至于技师这个词出现的频次远高于技术,大概因为观众中女程序员比较少,讲师也无所顾忌。

正文:

我最近看的一期是利用一致性哈希算法来解决分布式缓存扩容带来的缓存雪崩的问题,我们来一起探讨下。话不多说,先上2张图镇文。

浅析分布式缓存弹性扩容下的一致性哈希算法

 

浅析分布式缓存弹性扩容下的一致性哈希算法

 

假设我们有一个网站,并发访问量是非常高的。直接读写数据库的方式肯定不能及时处理用户的大量请求,要知道3秒不返回,53%的用户可能就关掉页面离开了。为了降低数据库的访问压力,于是我们用nginx作负载均衡,引入Redis作为缓存机制(略掉应用服务器部分)。现在我们一共有三台机器可以作为Redis服务器,如上图所示。

既然有3台机器,对于海量用户的每次访问,我们可以按照 h = Hash(key) % 3 算法简易计算其哈希值,那么如果我们将Redis Server分别编号为0、1、2,就可以根据上式和key计算出服务器编号h,然后去访问。大概数据的缓存就如下图这个样子。

浅析分布式缓存弹性扩容下的一致性哈希算法

 

老铁想想看,这样缓存数据可以想对均匀的分布在Redis Server上,这样真的就万事大

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值