当前位置: 首页 > news >正文

Redis中的缓存穿透

缓存穿透

缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,导致这些请求直接到了数据库上,对数据库造成了巨大的压力,可能造成数据库宕机。
缓存穿透
常见的解决方案:

1)缓存无效 key

如果缓存和数据库中都查不到某个 key 的数据就写一个到 Redis 中去并设置过期时间。
SET key value EX 60,这种方式可以解决请求的 key 变化不频繁的情况,将无效 key 的过期时间设置短一点。

2)布隆过滤器

布隆过滤器是一种由二进制向量(或者说位数组)和一系列随机映射函数(哈希函数)两部分组成的数据结构。相比于我们平时常用的 List、Map、Set 等数据结构,它占用空间更少并且效率更高,但是缺点是器返回的结果是概率性的,而且不是非常准确的。理论情况下添加到集合中的元素越多,误报的可能性就越大。并且存放在布隆过滤器的数据不容易删除。
布隆过滤器的处理过程

3)接口限流

根据用户或者 IP 对接口进行限流,对于异常频繁的访问行为,还可以采取黑名单机制,例如将异常 IP 列入黑名单。

  • 缓存空对象
    • 优点:实现简单,维护方便
    • 缺点:
      • 额外的内存消耗
      • 可能造成短期的不一致
  • 布隆过滤器
    • 优点:内存占用较少,没有多余的key
    • 缺点:
      • 实现复杂
      • 存在误判可能
  • 接口限流
http://www.lryc.cn/news/325718.html

相关文章:

  • javaSwing超市收银(txt)
  • Linux 理解文件系统、磁盘结构、软硬链接
  • 智慧商场数字化创新需要有数字能力帮手
  • JS加密解密之应用如何保存到桌面书签
  • 线上linux服务器升级nginx
  • 使用JDK提供的常用工具在多线程编写线程安全和数据同步的程序
  • 八道Python入门级题目及答案详解
  • Git 的cherry-pick含义
  • 大数据中TopK问题
  • 基于SpringBoot+MyBatis+Vue的电商智慧仓储管理系统的设计与实现(源码+LW+部署+讲解)
  • C++经典面试题目(四)
  • 2024/3/24 蓝桥杯
  • 用户验证:Streamlit应用程序与Streamlit-Authenticator
  • 风丘EV能量流测试解决方案 提高电动汽车续航能力
  • 【Python】输出一个 Python 项目下需要哪些第三方包
  • 程序员35岁会失业吗?【来自主流AI的回答】
  • 每天30分钟python(第一天)
  • gitlab简单介绍及安装使用
  • NetCore itext7 创建、编辑PDF插入表格、图片、文字(三)
  • 数据结构奇妙旅程之深入解析冒泡排序
  • 解决 sudo apt update E: The repository is not signed.
  • SCT2A26STER5.5V-100V Vin,4A峰值限流,高效异步降压DCDC转换器,替代LM5012、LM5013、LM5017、LM5164
  • 前端学习资源整合
  • 第16篇:奇偶校验器
  • Obsidian+PicGo+Gitee搭建免费图床
  • 计算机网络复试总结(五)
  • 设计模式 --4:工厂方法模式
  • Linux系统centos7.6更换yum源以及下载安装包到指定目录
  • 蓝桥杯-子矩阵
  • Nginx 故障排查之斜杠(/) --(附 Nginx 常用命令)