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

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

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

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

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

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

缓存穿透

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

缓存击穿

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

缓存雪崩

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

总结

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

相关文章:

  • 数字FPGA开发方向,该如何做好职业规划?
  • POI模板生成EXCEL 64000 style in a .xlsx Workbook
  • Flask项目打开总是上一个项目的网页
  • 鸿蒙仓颉开发语言实战教程:实现商城应用详情页
  • python打卡day34
  • 绘制音频信号的各种频谱图,包括Mel频谱图、STFT频谱图等。它不仅能够绘制频谱图librosa.display.specshow
  • 免费AI工具整理
  • 功能强大且易于使用的 JavaScript 音频库howler.js 和AI里如何同时文字跟音频构思想法
  • 个人理解 火山引擎的实时对话 AI 如何利用 WebRTC、大模型、语音识别(ASR)、语音合成(TTS)等技术实现低延迟的实时对话功能。
  • 服务器异常数据问题解决 工具(tcpdump+wireshark+iptables)
  • Spring Boot与Kafka集成实践:从入门到精通
  • 论文略读:If Multi-Agent Debate is the Answer, What is the Question?
  • Android11以上通过adb复制文件到内置存储让文件管理器可见
  • 04-jenkins学习之旅-java后端项目部署实践
  • 根据Cortex-M3(STM32F1)权威指南讲解MCU内存架构与如何查看编译器生成的地址具体位置
  • 8级-数组
  • python定时删除指定索引
  • 2025年高防IP与游戏盾深度对比:如何选择最佳防护方案?
  • Jenkins 构建日志统一上报:企业级 DevOps 管理实践
  • Jenkins
  • 在线简历/百度官方优化软件
  • 建设网站必须用dns/seo是什么专业
  • 企业内部系统网站制作/百度推广app下载
  • 政府网站内容建设/微信拓客的最新方法
  • wordpress 4.9.5 中文/广州seo培训
  • 重庆做网站公司/2022最新热点事件及点评