缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,导致每次请求都要到存储层去查询,失去了缓存的意义。解决方案包括:
1.接口层增加校验:如用户鉴权校验,对id进行基础校验,如id<=0的直接拦截。
2.缓存空结果:从缓存取不到的数据,在数据库中也没有取到,这时可以将key-value对写为key-null,并设置较短的缓存有效时间(如30秒),防止攻击用户反复用同一个id暴力攻击。
3.使用布隆过滤器:布隆过滤器可以快速判断一个key是否存在于集合中,如果不存在则直接返回,减少不必要的数据库查询。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。