问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么是缓存穿透?

发布网友 发布时间:2022-04-26 15:46

我来回答

5个回答

热心网友 时间:2022-04-11 02:06

缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询。

发现也没有,于是本次查询失败。当用户很多的时候,缓存都没有命中,于是都去请求了持久层数据库。

这会给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透。

解决方案
1、对请求参数做校验,例如可以用正则;

2、缓存空对象, 当存储层不命中后,即使返回的空对象也将其缓存起来,同时会设置一个过期时间,之后再访问这个数据将会从缓存中获取,保护了后端数据源;

但是这种方法会存在两个问题:

2.1、 如果空值能够被缓存起来,这就意味着缓存需要更多的空间存储更多的键,因为这当中可能会有很多的空值的键;

2.2、即使对空值设置了过期时间,还是会存在缓存层和存储层的数据会有一段时间窗口的不一致,这对于需要保持一致性的业务会有影响。

热心网友 时间:2022-04-11 03:24

最基本的就是首先做好参数校验,一些不合法的参数请求直接抛出异常信息返回给客户端。比如查询的数据库 id 不能小于 0、传入的邮箱格式不对的时候直接返回错误消息给客户端等等。

1)缓存无效 key : 如果缓存和数据库都查不到某个 key 的数据就写一个到 redis 中去并设置过期时间,具体命令如下:SET key value EX 10086。这种方式可以解决请求的 key 变化不频繁的情况,如何黑客恶意攻击,每次构建的不同的请求key,会导致 redis 中缓存大量无效的 key 。很明显,这种方案并不能从根本上解决此问题。如果非要用这种方式来解决穿透问题的话,尽量将无效的 key 的过期时间设置短一点比如 1 分钟。另外,一般情况下我们是这样设计 key 的: 表名:列名:主键名:主键值。

2)布隆过滤器:布隆过滤器是一个非常神奇的数据结构,通过它我们可以非常方便地判断一个给定数据是否存在与海量数据中。我们需要的就是判断 key 是否合法,有没有感觉布隆过滤器就是我们想要找的那个“人”。具体是这样做的:把所有可能存在的请求的值都存放在布隆过滤器中,当用户请求过来,我会先判断用户发来的请求的值是否存在于布隆过滤器中。不存在的话,直接返回请求参数错误信息给客户端,存在的话才会走下面的流程。总结一下就是下面这张图(这张图片不是我画的,为了省事直接在网上找的。

热心网友 时间:2022-04-11 04:59

缓存穿透又称缓存击穿,是指在高并发场景下缓存中(包括本地缓存和Redis缓存)的某一个Key被高并发的访问没有命中,此时回去数据库中访问数据,导致数据库并发的执行大量查询操作,对DB造成巨大的压力。

热心网友 时间:2022-04-11 06:50

缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存

热心网友 时间:2022-04-11 08:58

缓存穿透又称缓存击穿,是指查询一个不一定存在的数据。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
沈阳有哪些家居商场 沈阳都有哪些家居城 沈阳市有多少个家具城 沈阳都有什么家具城 沈阳有多少家家俱商城 沈阳家具地方有哪些 沈阳有哪些大型家居 沈阳美凯龙有什么牌子 沈阳家居市场有哪些品牌 消食片饭前还是饭后吃 做地锅鸡有哪些材料? 如何制作好吃的地锅鸡? ,暖风机电阻在哪,个位置安装? 为何会有南朝宋明帝借"阴兵"得天下的说法呢? 梦到死人没穿衣服 昨天梦见自己在路上走着,突然看到一大群身着黑色长袍的人。我问了问旁边的人,他告诉我,神父去世了,我 梦见自己被抓壮丁抓走 中国历史上唯一被噩梦吓死的皇帝是谁? 我今年前几时晚上到白天梦见了,我去了地府我看见了,地府崔判官她,身穿... 梦见亲人托梦给我,早上醒来亲人离去,迷惑。。求解! 汽车怎么换暖风机 ? 老人梦见阴兵抓自己是什么意思? 做梦梦到阴兵借道然后躲路边人家,结果人家堂前先人画像在动啥意思? 电脑用普通的显示器接口和用HDMI的有区别吗? us news世界排名2022 联系导师用“请您多多指教”合适吗? 在线修改作文。《我最敬爱的老师》 请老师们多多指教!(字数可缩减至600-700字左右) 各位,老师多多指教,下面的答案是什么? 请多多指教怎么回 请老师多多指教 缓存穿透和缓存击穿有什么区别 地锅鸡怎么做好吃? 【电脑高手急救!!】二级缓存损坏的CPU可以保修吗,超过频以及一系列问题 地锅鸡怎么做? 固态硬盘:浏览器缓存、系统缓存、虚拟内存能放在固态硬盘吗?频繁写入伤害大不大? 地锅鸡怎么做才好吃,必须掌握哪些诀窍呢? 用迅闪更新游戏后出现文件损坏 地锅鸡怎么做的过程 重启问题 电脑重起(极度郁闷) 地锅鸡怎么烧好吃 电脑频繁重启的解决方案 我的电脑老是经常性的重起,怎么办 电脑重启的问题。 关于电脑自动重启的一些问题。高分求解 电脑无故重启,我快要崩溃,请大侠帮忙 电脑不断重起 为什么我的电脑安装或下载东西的时候就重起? 赏金联赛排行榜第一是谁 lol玩家进,为什么赏金在虎牙被封了,不让直播,为什么呢?