加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

详解Redis缓存击穿以及办理方案

发布时间:2018-11-12 20:52:07 所属栏目:业界 来源:智能运维小讲堂
导读:什么是缓存击穿 在评论缓存击穿之前,我们先往返想下从缓存中加载数据的逻辑,如下图所示: 因此,假如黑客每次存心查询一个在缓存内肯定不存在的数据,导致每次哀求都要去存储层去查询,这样缓存就失去了意义。假如在大流量下数据库也许挂掉。这就是缓存

接下来我们来看一下,误判率为0.03时,底层维护的bit数组的长度如下图所示:

详解Redis缓存击穿以及办理方案

将bloomfilter的结构要领改为:

  1. private static BloomFilter<Integer> bloomFilter = BloomFilter.create(Funnels.integerFunnel(), size,0.01); 

即,此时误判率为0.01。在这种环境下,底层维护的bit数组的长度如下图所示

详解Redis缓存击穿以及办理方案

由此可见,误判率越低,则底层维护的数组越长,占用空间越大。因此,误判率现实取值,按照处事器所可以或许遭受的负载来抉择,不是拍脑壳瞎想的。

(3) 现实行使

redis伪代码如下所示:

  1. String get(String key) { 
  2. String value = redis.get(key); 
  3. if (value == null) { 
  4. if(!bloomfilter.mightContain(key)){ 
  5. return null; 
  6. }else{ 
  7. value = db.get(key); 
  8. redis.set(key, value); 
  9. return value; 

利益

  • 思绪简朴
  • 担保同等性
  • 机能强

弱点

  • 代码伟大度增大
  • 必要其它维护一个荟萃来存放缓存的Key
  • 布隆过滤器不支持删值操纵

【编辑保举】

  1. B站数据库“脱裤”?怎样让你的数据不“裸露”?
  2. 浅谈数据库防火墙技能及应用
  3. 数据库防火墙的阻断方法:举动阻断可能Session阻断?
  4. 数据库防火墙贸易化的条件前提
  5. 怎样应对处事器安详威胁?听听Sophos专家怎么说
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读