Redis的热点Key及其解决方案

哈喽大家好~我是零零后程序员小三。

今天我们来讲讲Redis的热点Key的解决方案。上一篇章我们有讲了缓存,接下来就了解一下面试中面试官最爱问的关于热点Key的解决方案。

什么是热点Key

要解决问题就先要了解问题。什么是热点Key呢?就好比新浪微博,当一个大V有重大话题时(出轨、结婚等等)大量用户就会去访问该大V,接下来存储该话题的服务端的带宽就会被打满了,就容易造成宕机,当服务端的缓存宕机后,就会降级到数据库层,数据库更容易被拖垮。这个就叫热点Key。

怎么发现热点Key

我们知道了什么是热点Key之后,这里我们就来谈谈怎么发现这个热点Key。

(1)根据自身的业务经验来进行预估哪些会成为热点Kye:其实这个方法还是有一定的可行性的。比如在做某一个商品秒杀的时候,那我们就可以根据这个商品的Key来进行判断是否是热点Key,当然也并非所有的业务都能预估出来哪些是会成为热点Key的。

(2)在客户端进行数据收集:这个方式就是在对Redis进行操作之前,加入代码进行对数据统计。

热点key的解决办法

了解完了问题之后就要解决问题了。关于热点key的解决办法有很多,五花八门的。这里小三就写一种我自己在工作中经常会用到的办法。

为了避免带宽或者传输影响本地缓存热点key数据,对于每次读请求,将⾸先检查key是否存在于本地缓存中,如果存在则直接返回,如果不存在就去访问分布式缓存的机器。对于缓存中的某些Key对应的value存储在集群中⼀台机器,使得所有流量涌向同⼀机器,成为系统的瓶颈⽆法通过增加机器容量来解决。

image.png

好了就分享到这里,今天是周一。又是摸鱼的一周,上面还没派活下来哈哈,有空就写文章发发。大家不要嫌短哈,有什么不太懂的或是觉得我哪里写错了的话可以联系我讨论一下哦。

dbd966e878500dbb456d9c2eb581357.jpg

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值