首页 > 技术文章 > 缓存穿透、缓存击穿、缓存雪崩的区别

tongwencong 2021-11-23 23:24 原文

一、缓存穿透:(即:缓存无数据,数据库也无数据)

 

  如黑客恶意攻击,使用缓存和数据库均没有的key进行不断请求,导致数据库压力过大。

 

解决方法:

 

1、对用户进行鉴权、对请求参数进行校验,不合理直接过滤。

 

2、对查询不到的数据也放到缓存,value为空,设置一定的过期时间。(不太常用,因为如果是随机key就不起作用,且占缓存)

 

3、使用布隆过滤器,快速判断key是否在数据库中存在,不存在直接返回。(最有效)

 

第1种是最常用的策略,第2种不太常用,因为如果是随机key就不起作用,且占缓存,第三种最简单有效。实际使用中,可以1、3相结合。

推荐阅读