缓存
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0c078087247a34e06c5745531a27af55.png)
缓存只是为了缓解数据库压力而添加的一层保护层,当从缓存中查询不到我们需要的数据就要去数据库中查询了。如果被黑客利用,频繁去访问缓存中没有的数据,那么缓存就失去了存在的意义,瞬间所有请求的压力都落在了数据库上,这样会导致数据库连接异常。
穿透效果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5d72c45f224e4eff90748e19e691e313.png)
如果同一时间有大量请求进行访问,缓存中不存在的数据,就会越过缓存直接访问数据,大量访问数据库会对数据库造成巨大负担,甚至使得数据库挂掉。
解决方案
布隆过滤器
布隆过滤器是一种概率型数据结构,特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”.
并不适用于删除。
只要我们可以验证缓存中不存在的就直接禁止让他穿透缓存。