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存储在集群中⼀台机器,使得所有流量涌向同⼀机器,成为系统的瓶颈⽆法通过增加机器容量来解决。

Redis的热点Key及其解决方案_第1张图片

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

Redis的热点Key及其解决方案_第2张图片

 

你可能感兴趣的:(干货分享,redis,缓存)