背景
我们知道在面试中,面试官经常会问一些关于高并发的问题,其中热点key问题就是一个热门问题,热点key顾名思义就是访问非常频繁的key,再加上高并发访问条件,热点key缓存问题如何解决。接下来我们从以下三个方面来剖析一下:
1、热点key定义
2、如何发现热点key
3、解决方案
热点key定义
突然有几十万甚至更大的请求去访问redis上的某个特定key。这样会造成流量过于集中,达到例如Redis单实例瓶颈(一般是10W OPS级别),或者物理网卡上限,从而导致这台redis的服务器Hold不住。后果就是接下来对这个key的请求,将会压垮缓存服务
如何发现热点key
1、凭借业务经验,预估出那些访问频繁的热点key
优点:可行性高,例如秒杀商品业务中,秒杀的商品都是热点key
缺点:并非所有的业务都容易预估出热点key,例如商品推荐业务,你事先是无法料之客户的喜好的
2、客户端收集
优点:实现简单方便,只需要在访问redis客户端之前加入一行代码进行数据统计,统计方式多种多样,有本地计数、发消息单独处理统计等
缺点:对客户端代码造成入侵
3、在Proxy(代理层)收集
优点:proxy层统一入口做统计,对业务代码无入侵
缺点:要求缓存架构有proxy层结构才行,例如Proxy可以是Twemproxy

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



