14.7
来源:14-7 详解缓存穿透与解决方案

精慕门2276547
2024-03-20
老师 我看说缓存穿透是大量访问一个redis中不存在的key而造成的大量访问数据库,但是我们的service方法不是规定了@cacheable,然后指定了key的吗,如果通过正常http请求来访问接口 然后访问缓存,不会出现访问不存在的key的情况吧, 或者说可以通过某种恶意方式去大量访问不存在的key,那我们将不存在的key和null值存进redis是不是也没意义了,恶意的话也不会去重复访问一个不存在的key吧
写回答
1回答
-
甲蛙
2024-08-01
点赞!确实有这种情况,这时候我们会用到另一个知识:布隆过滤器,可以百度下,原理大概就是把数据库所有的key用hash算法放到redis,bitmap,当外部请求时,先看看bitmap有。它的效果是:bitmap有,数据库不一定有;bitmap没有,数据库肯定没有。所以当恶意请求过来时,bitmap没有,那数据库肯定也没有
022024-09-23