缓存穿透
来源:互联网 发布:疾病数据库设计 编辑:程序博客网 时间:2024/04/29 11:01
在项目中使用缓存,请求数据在缓存中没有查询到,就会去持久层(DB)查询,然后在返回数据给请求方的同时,会将数据同步存放在缓存中,以便下次相同数据请求的时候,快速响应并减轻持久层的压力。但是如果该请求数据在持久层也没有查询到,就不会有返回结果存放到缓存中,因此该请求每次都会重复的到持久层查询,使缓存没有起到应有的效果,从而加重了整个系统的压力,并且增大了响应时间,降低了系统的处理速度。
为了防止缓存穿透,可以将空的响应请求设定成特殊的值(&&...
等)保存在缓存中,这样就解决了每次都去持久层查询的问题。但是如果每次请求Key的查询结果为空,都保存特殊值到缓存中,缓存就会变得很大,还有一个问题是可能过段时间后,持久层更新了,有该请求Key的返回,所以需要给这些空Key在缓存中设置存活时间,时间一到就应该移出缓存,并重新到持久层查询。
0 0
- 缓存穿透
- 实验 缓存,缓存穿透
- 缓存穿透与雪崩
- 缓存穿透问题
- 关于缓存穿透
- 缓存穿透优化
- 缓存穿透与缓存雪崩
- 缓存穿透与缓存雪崩
- 缓存穿透与缓存雪崩
- 缓存穿透与缓存雪崩
- 缓存穿透与缓存雪崩
- 缓存雪崩,缓存穿透解决方案
- 缓存穿透与缓存雪崩
- 缓存穿透与缓存雪崩
- 缓存穿透与缓存雪崩
- 缓存穿透与缓存雪崩
- 缓存穿透与缓存雪崩
- 缓存雪崩,缓存穿透解决方案
- 记录: <span> 和 <div>
- [LeetCode] Intersection of Two Arrays II 两个数组的交集II
- java-ArrayList和LinkedList
- slam学习(3)
- 【Nginx】——搭建全程
- 缓存穿透
- JAVA多线程之——经典面试消费者与生产者
- 解决安卓6.0拨打电话时的权限问题
- 如何在移动硬盘上安装Ubuntu系统(2)
- 【mysql】错误号码2003 can't connect to mysql server on 'localhost' (0)解决方案
- 【Nginx】——反向代理
- React基础之JSX语法
- JSP技术基础
- Face Detection with the Faster R-CNN (基于Faster RCNN的人脸检测)