美文网首页
缓存问题总结

缓存问题总结

作者: packet | 来源:发表于2019-04-17 11:36 被阅读0次

1)缓存穿透
故意查询在cache和db中根本都不存在的数据。
如果非法key的数量不多,可以缓存null。如果很多的话,使用布隆过滤器判断key是否在合法名单中。
其他的类型场景有Hbase 中使用它去判断数据是否在磁盘上。还有在爬虫场景判断url 是否已经被爬取过。
注意,布隆过滤器有一个小小的误识别率,某个非法key也可能被认为是在合法名单中。


2)缓存击穿
在某个时刻,key刚好过期,这时候大量相关查询过来,都会打到数据库上。
解决方案是使用互斥锁,第一个线程拿到锁后,其他线程需要等待。第一个线程存取到缓存之后,其他线程直接走缓存即可。

3)缓存雪崩
大规模的缓存失效,比如缓存宕机。

  1. 增强可用性,如果是redis,可使用sentinel + 主从结构
  2. 限流降级:使用 Hystrix进行限流 & 降级 ,比如一秒来了5000个请求,我们可以设置假设只能有一秒 2000个请求能通过这个组件(数据库的的阈值),那么其他剩余的 3000 请求就会走限流逻辑。

4)热点数据集中失效

  1. 设置key的过期时间,使用某个范围内的随机值
  2. 互斥锁。但会减小吞吐量。

鸣谢:关于【缓存穿透、缓存击穿、缓存雪崩、热点数据失效】问题的解决方案

相关文章

  • 缓存问题总结

    1)缓存穿透故意查询在cache和db中根本都不存在的数据。如果非法key的数量不多,可以缓存null。如果很多的...

  • Redis总结

    一、数据类型 二、使用场景 二、redis缓存使用总结 三、redis缓存常见问题 四、布隆过滤器的方式解决缓存穿透问题

  • Redis缓存相关问题总结

    使用缓存是系统性能优化的第一黄金法则。 缓存的设计和使用对一个系统的性能至关重要,平时接触到项目无论多少也都会在某...

  • WebView加载缓存问题总结

    1.兼容性问题 4.4包括以下版本WebView内核不同导致,各种问题。这里解决的方式是使用腾讯TBS浏览器服务,...

  • 你的系统是怎样支持高并发的?-多级缓存架构

    ​ 目录 ① 多级缓存使用场景 ② 多级缓存读写逻辑 ③缓存预热 ④总结 1 多级缓存使用场景 多级缓存适合用在对...

  • Integer.IntegerCache 缓存问题总结

    为何一个是 true,一个是 false,不是完全一样? 根据Java编译机制, .java文件在编译以后会生成....

  • 缓存(Redis)面试问题总结

    一、 二八定律 网站访问数据的特点大多数呈现在"二八定律":80%的业务访问集中在20%的数据上。这时为了减轻数据...

  • 业务分析:HR端职位编辑薪资计算逻辑和错误分析

    1. 问题总结 未发布类型的职位详情中,会将职位信息缓存到浏览器。数据缓存和获取都需要特殊金额转化,经测试发现,处...

  • 阿里老司机教你微服务化后缓存怎么做

    摘要 最近接手的代码中遇到几个缓存的问题,存在一些设计原则的问题,这里总结一下,希望可以对你有帮助 问题 问题1:...

  • 浏览器 http 缓存机制总结

    浏览器 http 缓存机制总结 http 报文头信息控制缓存介绍 Expires ​ 指的是缓存过期的时间,超...

网友评论

      本文标题:缓存问题总结

      本文链接:https://www.haomeiwen.com/subject/pypgwqtx.html