一、场景
短时间内发送大量的请求,而这些数据即不再数据库中也不在缓存中,会造成缓存穿透。
缓存穿透攻击是指恶意用户在短时内大量查询不存在的数据,导致大量请求被送达数据库进行查询,当请求数量超过数据库负载上限时,使系统响应出现高延迟甚至瘫痪的攻击行为。
二、预防缓存穿透的方案
布隆过滤器(利用布隆过滤器可以减少缓存穿透的情况)
原理:利用一个很长的二进制数组,通过一系列的hash函数来确定该数据是否存在。
减少误判的方式:
1、增加二进制数组位数
2、增加Hash次数
三、布隆过滤器在项目中的使用流程
四、假如产品的数据被删除
1、布隆过滤器因为某一位二进制可能被多个编号Hash引用,因此布隆过滤器无法直接处理删除数据的情况。
2、解决方案1:定时异步重建布隆过滤器
3、解决方案2:计数Bloom Fliter
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_44432032/article/details/120444331
内容来源于网络,如有侵权,请联系作者删除!