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

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

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

缺点:

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

在这里插入图片描述

2:布隆过滤

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

缺点:

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

在这里插入图片描述

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

文章来源:https://blog.csdn.net/qq_62669235/article/details/135051233
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。