您当前的位置:首页 > 电脑百科 > 数据库 > Redis

Redis热点key问题如何解决?

时间:2022-03-30 15:47:58  来源:  作者:元面试
面试提问:Redis热点key问题如何解决?

 

面试官提问

  • redis热点key如何解决?
  • 100万请求同时从Redis读取相同key,如何优化?
  • 明星有热点新闻,如何从Redis读取热点新闻的相关数据?

Redis热点key问题是什么

商品大促(比如阿里双11)、热点新闻(比如微博xx明星塌房),都很可能会访问同一个Redis key,导致出现Redis热点,所有的流量都打向同一台服务器,占满物理带宽然后崩溃。一旦Redis崩溃,就会去访问更慢的存储比如数据库,从而产生严重的雪崩。

如何解决Redis热点key问题?

1、发现热点key

(1)业务预先判断。比如秒杀商品一定是热点key。

(2)客户端自动判断。自定义客户端SDK,然后上传监控数据到实时分析平台,再通过一些广播组件比如etcd、zookeeper、kafka等广播给所有的节点。

(3)服务端自动判断。服务端根据请求信息,自动判断热点。

2、处理热点key

(1)方式

基本上都是在做多级缓存。也就是除了Redis缓存,本地也增加几层缓存。常见的就是Guava-Cache做本地缓存。

(2)考虑的问题

怎么保证本地缓存一致性?当value发生变化时,首先变化的那台服务器一定是强一致性的,可以立刻invalid本地缓存。修改Redis的缓存后,一般会有广播,广播给所有的服务器,让他们检查本地缓存是否有这个热点key,然后invalid本地缓存,保证最终一致性。

怎么保证正常业务不受影响?划分专门的热点区域(比如阿里Tair,有赞TMC)热点区域的所有带宽、存储都是独立的,和普通缓存区域划分开。然后通过返回的数据热点标记,让客户端下次访问时去访问热点区域而非普通区域。并且当热点区域缓存失效后,去普通区域拿数据,如果数据仍然很热,那么还是把数据会继续异步存入热点区域。

怎么保证最小侵入性?一般会集成专用的sdk,把侵入性代码都封装起来,然后底层框架会用Jedis,来兼容业务的其他Redis访问。

为什么SDK封装,都很少用lettuce、redisson?因为jedis更接近底层,而且更稳定,容易封装。

结束语

能看到这里的你,一定是个热爱编程的同学。如果想要有计划地准备大厂面试,欢迎关注。



Tags:Redis   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
面试官提问 Redis热点key如何解决? 100万请求同时从Redis读取相同key,如何优化? 明星有热点新闻,如何从Redis读取热点新闻的相关数据?Redis热点key问题是什么商品大促(比如阿里双...【详细内容】
2022-03-30  Tags: Redis  点击:(1)  评论:(0)  加入收藏
如果你了解过关系型数据库事务的话,相信这篇文章对你来说是很容易理解的了。具体什么是事务我就不说不多了,直接讲 Redis 事务相关的部分。首先,我们先来看下,Redis 是怎么执行...【详细内容】
2022-03-30  Tags: Redis  点击:(1)  评论:(0)  加入收藏
一.工具准备 VMware 15(CentOS 7)链接: https://pan.baidu.com/s/1f5xW2d18vSHHhpz3KsZIHA提取码:gpf7 Xftp 5 & Xshell 5链接: https://pan.baidu.com/s/1gqe_M1fKQtIAT5BaNhj2B...【详细内容】
2022-03-28  Tags: Redis  点击:(7)  评论:(0)  加入收藏
需求线上出现的问题是,一些非核心的查询数据业务,在请求超时或者错误的时候,用户会越查询,导致数据库cup飙升,拖垮核心的业务。领导让我做三件事,一是把这些接口做一个限流,这些限...【详细内容】
2022-03-24  Tags: Redis  点击:(12)  评论:(0)  加入收藏
Redis是否变慢了?从业务服务器到Redis服务器这条调用链路中变慢的原因可能有2个 业务服务器到Redis服务器之间出现了网络问题,例如网络丢包,延迟比较严重 Redis本身的执行出现...【详细内容】
2022-03-21  Tags: Redis  点击:(13)  评论:(0)  加入收藏
本文章向大家介绍关于StackExchange.Redis的一些总结,算是综合一个网上资料与自己的总结写的一个JOSN转换类,有一定的参考价值,需要的朋友可以参考一下。 private IDatabase ca...【详细内容】
2022-03-21  Tags: Redis  点击:(15)  评论:(0)  加入收藏
一、RedisInsight 简介RedisInsight 是一个直观高效的 Redis GUI 管理工具,它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控,并且可以在界面上使用 CLI 和连...【详细内容】
2022-03-17  Tags: Redis  点击:(67)  评论:(0)  加入收藏
在高并发的场景下,大量的请求直接访问Mysql很容易造成性能问题 所以,我们都会用Redis来做数据的缓存,削减对数据库的请求 但是,Mysql和Redis是两种不同的数据库,如何保证不同数...【详细内容】
2022-03-10  Tags: Redis  点击:(21)  评论:(0)  加入收藏
朋友们,我有一台华为云耀服务器,闲来无事,在上面装了个redis,做一些测试研究,结果被攻击了,这还是头一回遇见,因为以前的环境还是使用内网居多。现象描述因为头一天忙到挺晚的,电脑...【详细内容】
2022-03-09  Tags: Redis  点击:(27)  评论:(0)  加入收藏
Redis数据类型-set(集合) 设置一个值sadd key value 查看set集合中的元素smembers key 判断某一个元素是否在set集合中,返回1则存在,不存在返回0sismember key value 移除set...【详细内容】
2022-03-04  Tags: Redis  点击:(23)  评论:(0)  加入收藏
▌简易百科推荐
面试官提问 Redis热点key如何解决? 100万请求同时从Redis读取相同key,如何优化? 明星有热点新闻,如何从Redis读取热点新闻的相关数据?Redis热点key问题是什么商品大促(比如阿里双...【详细内容】
2022-03-30  元面试    Tags:Redis   点击:(1)  评论:(0)  加入收藏
如果你了解过关系型数据库事务的话,相信这篇文章对你来说是很容易理解的了。具体什么是事务我就不说不多了,直接讲 Redis 事务相关的部分。首先,我们先来看下,Redis 是怎么执行...【详细内容】
2022-03-30  可爱的雯雯子  博客园  Tags:Redis事务   点击:(1)  评论:(0)  加入收藏
一.工具准备 VMware 15(CentOS 7)链接: https://pan.baidu.com/s/1f5xW2d18vSHHhpz3KsZIHA提取码:gpf7 Xftp 5 & Xshell 5链接: https://pan.baidu.com/s/1gqe_M1fKQtIAT5BaNhj2B...【详细内容】
2022-03-28  邬小明    Tags:安装Redis   点击:(7)  评论:(0)  加入收藏
需求线上出现的问题是,一些非核心的查询数据业务,在请求超时或者错误的时候,用户会越查询,导致数据库cup飙升,拖垮核心的业务。领导让我做三件事,一是把这些接口做一个限流,这些限...【详细内容】
2022-03-24  架构界的郭德纲    Tags:Redis   点击:(12)  评论:(0)  加入收藏
Redis是否变慢了?从业务服务器到Redis服务器这条调用链路中变慢的原因可能有2个 业务服务器到Redis服务器之间出现了网络问题,例如网络丢包,延迟比较严重 Redis本身的执行出现...【详细内容】
2022-03-21  Java识堂    Tags:Redis   点击:(13)  评论:(0)  加入收藏
本文章向大家介绍关于StackExchange.Redis的一些总结,算是综合一个网上资料与自己的总结写的一个JOSN转换类,有一定的参考价值,需要的朋友可以参考一下。 private IDatabase ca...【详细内容】
2022-03-21  斜杠亮子    Tags:RedisHelper   点击:(15)  评论:(0)  加入收藏
一、RedisInsight 简介RedisInsight 是一个直观高效的 Redis GUI 管理工具,它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控,并且可以在界面上使用 CLI 和连...【详细内容】
2022-03-17  java互联网架构  CSDN  Tags:Redis   点击:(67)  评论:(0)  加入收藏
在高并发的场景下,大量的请求直接访问Mysql很容易造成性能问题 所以,我们都会用Redis来做数据的缓存,削减对数据库的请求 但是,Mysql和Redis是两种不同的数据库,如何保证不同数...【详细内容】
2022-03-10  AT小白在线中    Tags:Redis   点击:(21)  评论:(0)  加入收藏
朋友们,我有一台华为云耀服务器,闲来无事,在上面装了个redis,做一些测试研究,结果被攻击了,这还是头一回遇见,因为以前的环境还是使用内网居多。现象描述因为头一天忙到挺晚的,电脑...【详细内容】
2022-03-09  我犟不过你  掘金  Tags:Redis   点击:(27)  评论:(0)  加入收藏
Redis数据类型-set(集合) 设置一个值sadd key value 查看set集合中的元素smembers key 判断某一个元素是否在set集合中,返回1则存在,不存在返回0sismember key value 移除set...【详细内容】
2022-03-04  Jason.Jin    Tags:Redis   点击:(23)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条