Redis缓存知识问题
----Redis缓存知识问题//---- http://
Redis缓存知识问题
缓存穿透:
条件:缓存穿透是指查询一个一定不存在的数据 , 由于缓存是不命中时被动写的 , 并且出于容错考虑 , 如果从存储层查不到数据则不写入缓存 , 这将导致这个不存在的数据每次请求都要到存储层去查询 , 失去了缓存的意义 。 在流量大时 , 可能DB就挂掉了 , 要是有人利用不存在的key频繁攻击我们的应用 , 这就是漏洞 。
解决方案:
有很多种方法可以有效地解决缓存穿透问题 , 最常见的则是采用布隆过滤器 , 将所有可能存在的数据哈希到一个足够大的bitmap中 , 一个一定不存在的数据会被 这个bitmap拦截掉 , 从而避免了对底层存储系统的查询压力 。 另外也有一个更为简单粗暴的方法(我们采用的就是这种) , 如果一个查询返回的数据为空(不管是数 据不存在 , 还是系统故障) , 我们仍然把这个空结果进行缓存 , 但它的过期时间会很短 , 最长不超过五分钟 。
推荐阅读
- s6|金铲铲之战:S6双城传说如何才能快速上手?基础知识很关键
- edg战队|《英雄联盟》全球总决赛冷知识:S11冠军EDG输了八个小局
- edg战队|S11世界赛EDG夺冠后,热点知识分享:Meiko成为LPL唯一大满贯选手
- 我的世界|我的世界:萌新必备“冷知识”,看似废物的钟,却是单冰道船必备
- fate grand order|FGO角色名字大改,都按照历史知识命名,没有偏离原型设定
- gt赛车7|三国杀:有关陆抗的一些冷门知识
- 剑网3|剑网三冷知识
- 冷知识|我的世界:无聊的冷知识,史蒂夫跌落高度的极限,猪灵幼崽长不大
- |大飞说文玩:猴头手串“凤羽”小知识讲解,喜欢的朋友可以看看
- 哈利·波特|梗知识:伟奶生,谜一大