什么是缓存穿透,如何防止

时间:2024-10-20 07:11:50

1、缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询

什么是缓存穿透,如何防止

2、查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。

什么是缓存穿透,如何防止

3、解决办法:布隆过滤 ,对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃。

什么是缓存穿透,如何防止

4、还有最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中

什么是缓存穿透,如何防止

5、一个一定不存在的数据会被这个bitmap拦截掉,从而避免了对底层存储系统的查询压力。

什么是缓存穿透,如何防止

6、缓存空对象 ,也可以采用一个更为简单粗暴的方法,如果一个查询返回的数据为空(不管是数据不存在,还是系统故障)

什么是缓存穿透,如何防止

7、我们仍然把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分钟。

什么是缓存穿透,如何防止
© 手抄报圈