目录
什么是缓存穿透
缓存穿透是指查询一个一定不存在的数据,当缓存中查不到的时候就要去数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。如果有人利用不存在的key频繁攻击我们的应系统,就可能导致系统宕机等问题,这就是系统漏洞。
如何避免缓存穿透
布隆过滤:将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被这个bitmap拦截掉,从而避免了对底层存储系统的查询压力。
布谷鸟过滤:解决布隆过滤的
缓存空对象:将从数据库查询出的空对象也存到缓存中,给它设置很短的过期时间。
布谷鸟过滤和布隆过滤的对比:
布隆过滤的缺点:
1、