什么是缓存穿透,如何防止
1、缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询
2、查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。
3、解决办法:布隆过滤 ,对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃。
4、还有最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中
5、一个一定不存在的数据会被这个bitmap拦截掉,从而避免了对底层存储系统的查询压力。
6、缓存空对象 ,也可以采用一个更为简单粗暴的方法,如果一个查询返回的数据为空(不管是数据不存在,还是系统故障)
7、我们仍然把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分钟。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。