开发者社区> 问答> 正文

什么是缓存穿透,以及如何解决?

什么是缓存穿透,以及如何解决?

展开
收起
不吃核桃 2024-08-14 08:00:21 19 0
1 条回答
写回答
取消 提交回答
  • 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,导致每次请求都要到存储层去查询,失去了缓存的意义。解决方案包括:
    1.接口层增加校验:如用户鉴权校验,对id进行基础校验,如id<=0的直接拦截。
    2.缓存空结果:从缓存取不到的数据,在数据库中也没有取到,这时可以将key-value对写为key-null,并设置较短的缓存有效时间(如30秒),防止攻击用户反复用同一个id暴力攻击。
    3.使用布隆过滤器:布隆过滤器可以快速判断一个key是否存在于集合中,如果不存在则直接返回,减少不必要的数据库查询。

    2024-08-14 08:52:45
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
用户态高速块缓存方案 立即下载
高性能Web架构之缓存体系 立即下载