缓存穿透的原因和解决方案

缓存穿透
缓存穿透产生的原因
  • 用户请求的数据在缓存中和数据库中都不存在,不断发起请求,给数据库带来压力
缓存穿透的解决方案
1:缓存空对象

优点:实现简单,维护方便

缺点:

  • 额外的内存消耗
  • 可能造成短期的不一致–>当一个不存在的id发起请求,我们设置Null,此时新id为刚才的id,那缓存里面还是null
    • 可以调整TTL减少影响,也可以在新添加数据的时候覆盖之前的Null

在这里插入图片描述

2:布隆过滤

优点:内存占用较少,没有多余的key

缺点:

  • 实现复杂
  • 存在误判可能–>因为布隆过滤器中的二进制位是通过数据库中的数据进行哈希运算得到哈希值,再将哈希值转换位二进制位保存到布隆过滤器中

在这里插入图片描述

3.增加id的复杂度,避免被猜测id规律
4.做好数据的基础格式校验
5.加强用户权限校验
6.做好热点参数的限流

最近更新

  1. TCP协议是安全的吗?

    2023-12-18 02:04:03       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-18 02:04:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-18 02:04:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-18 02:04:03       18 阅读

热门阅读

  1. 变量命名不够恰当(js的问题)

    2023-12-18 02:04:03       45 阅读
  2. conanfile.py-Methods-package_info()

    2023-12-18 02:04:03       42 阅读
  3. USB简介系列-04

    2023-12-18 02:04:03       38 阅读
  4. MBA-论文说-历年考题参考

    2023-12-18 02:04:03       35 阅读
  5. 六大设计原则

    2023-12-18 02:04:03       33 阅读
  6. 第16课 SQL入门之更新和删除数据

    2023-12-18 02:04:03       44 阅读
  7. c# 数组删除

    2023-12-18 02:04:03       38 阅读