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

redis 缓存穿透,缓存雪崩,缓存击穿

之前也不知道是哪个老六总结出来得缓存穿透,缓存击穿 。
穿透,击穿 中文上容易搞混,所以贴出英文

缓存穿透: Cache Penetration
“Penetration” 有穿透、渗透之意,
eg: the penetration of hackers into the system (黑客对系统的侵入)

缓存击穿:Cache Breakdown
“Breakdown” 表示故障、损坏
eg: a nervous breakdown(精神崩溃 )

看下英文就很容易搞清楚了

缓存穿透

原理:当请求查询一个确定不存在的数据时 ,缓存中没有对应数据,请求直接落到数据库上。若被恶意利用,频繁发起此类查询,会给数据库带来极大压力。
解决方案分析:对不存在的数据也进行缓存,设置较短过期时间的空值缓存。或者采用布隆过滤器

缓存击穿

原理:热点数据(访问频率极高的数据)在缓存失效的瞬间,大量请求同时涌入,直接访问数据库,可能造成数据库短时间压力剧增。
解决方案分析:
使用互斥锁,在缓存失效时,只允许一个请求去数据库加载数据并更新缓存,其他请求等待,避免大量请求同时访问数据库。(只有缓存失效得时候才使用互斥锁)
采用 “永不过期” 策略,后台异步更新数据,保证热点数据一直有缓存,或者提前对热点数据进行预热,在缓存失效前主动更新缓存

缓存雪崩

原理:大量缓存同时失效,导致大量原本应从缓存获取数据的请求,瞬间都直接访问数据库,使数据库负载过高,甚至可能导致数据库崩溃。
解决方案分析:
给缓存失效时间加上随机值,让缓存失效时间分散开,避免集中失效。
使用多级缓存,如本地缓存 + 分布式缓存,当一级缓存失效时,二级缓存可作为缓冲,减轻数据库压力。

总结

缓存击穿 与 缓存雪崩 很像, 击穿是一条热点数据,雪崩是大量数据
穿透,是被入侵

http://www.lryc.cn/news/2384903.html

相关文章:

  • JAVA8怎么使用9的List.of
  • 告别手动测试:AUTOSAR网络管理自动化测试实战
  • BUCK电路利用状态空间平均法和开关周期平均法推导
  • MongoDB 用户与权限管理完全指南
  • C++滑动门问题(附两种方法)
  • 基于ITcpServer/IHttpServer框架的HTTP服务器
  • 初识main函数
  • FPGA高效验证工具Solidify 8.0:全面重构图形用户界面
  • SIL2/PLd 认证 Inxpect毫米波安全雷达:3D 扫描 + 微小运动检测守护工业安全
  • java中string类型的list集合放到redis的5种数据类型的那种比较合适呢,可以用StringRedisTemplate实现
  • PyQt学习系列09-应用程序打包与部署
  • 实现图片自动压缩算法,canvas压缩图片方法
  • 《数据结构笔记三》:单链表(创建、插入、遍历、删除、释放内存等核心操作)
  • 光伏行业如何利用SD-WAN优化分布式网络:替代MPLS、VPN、4G/5G的网络架构升级与云安全方案全解析
  • 2025电工杯数学建模A题思路数模AI提示词工程
  • LLM | 论文精读 | NAACL 2025 | Clarify When Necessary:教语言模型何时该“问一句”再答!
  • 嵌入式鸿蒙openharmony应用开发环境搭建与工程创建实现
  • MDK的编译过程及文件类型全解
  • socc 19 echash论文部分解读
  • Linux Shell编程(八)
  • AI筑基,新质跃升|英码科技亮相华为广东新质生产力创新峰会,发布大模型一体机新品,助力产业智能化转型
  • 手机打电话时由对方DTMF响应切换多级IVR语音菜单(话术脚本与实战)
  • 面试题——JDBC|Maven|Spring的IOC思想|DI思想|SpringMVC
  • DETR3D- 3D Object Detection from Multi-view Images via 3D-to-2D Queries
  • SpringBoot3整合WebSocket
  • 鸿蒙进阶——驱动框架UHDF 机制核心源码解读(一)
  • 电子电路:能认为电抗也是在做功吗?
  • DEEPSEEK + 其他工具的玩法
  • Idea 配合 devtools 依赖 实现热部署
  • 远程访问家里的路由器:异地访问内网设备或指定端口网址