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

【redis——缓存击穿】

redis——缓存击穿

  • 缓存击穿
    • 核心特征​​
  • 缓存击穿的解决方案
    • 互斥锁(Mutex Lock)方案
    • 逻辑过期(Logical Expiration)

缓存击穿

缓存击穿是指​​某个热点key在缓存过期失效的瞬间,同时有大量请求涌入,直接穿透缓存访问数据库​​的现象。

核心特征​​

  • 针对的是​​热点数据​​(高频访问的key)
  • 发生在​​缓存失效的瞬间​​
  • 造成数据库​​瞬时高并发压力​​
  • 数据​​真实存在于数据库​

缓存击穿的解决方案

互斥锁(Mutex Lock)方案

​​核心思想​​:使用分布式锁保证只有一个线程重建缓存
适用场景​​:写操作较少的动态数据
​​优势​​:强一致性

存在
不存在
等待后
降级
客户端请求数据
缓存存在?
返回缓存数据
尝试获取分布式锁
获取锁成功?
查询数据库
写入缓存
释放锁
等待重试或降级
返回默认数据

逻辑过期(Logical Expiration)

​​核心思想​​:物理永不过期,通过逻辑字段控制有效性
适用场景​​:极高热度的静态数据(如商品基础信息)
优势:渐进式更新​​:通过异步线程更新缓存,避免瞬时负载

不存在
存在
未过期
已过期
客户端请求数据
缓存存在?
查询数据库并全量写入
返回新数据
逻辑是否过期?
返回缓存数据
尝试获取更新锁
获锁成功?
立即返回当前过期数据
同时异步更新
异步流程:
1. 查询最新数据
2. 更新缓存
3. 释放锁
返回当前过期数据
http://www.xdnf.cn/news/13918.html

相关文章:

  • 202557读书笔记|《梦里花落知多少(轻经典)》——有你在的地方才最美
  • Docker Buildx 简介与安装指南
  • AQS独占模式——资源获取和释放源码分析
  • 43 C 语言 math.h 库函数详解:绝对值、数学运算、取整舍入、分解组合、三角反三角、双曲函数及宏定义常量
  • Claude Blender
  • java集合篇(一) ---- 集合的概述
  • 低成本同屏方案:电脑 + 路由器实现 50 台安卓平板实时同屏
  • 基于React Native的HarmonyOS 5.0房产与装修应用开发
  • 个典型的 Java 泛型在反序列化场景下“类型擦除 + 无法推断具体类型”导致的隐性 Bug
  • 【Google Chrome】谷歌浏览器历史版本下载
  • 基于Three.js的交互式国风博物馆设计与实现
  • 绿叶洗发水瓶-多实体建模拆图案例
  • 如何有效开展冒烟测试
  • 提升搜索可见度的基石:标题标签设置原则与SEO效能量化分析
  • DBever工具自适应mysql不同版本的连接
  • 【论文解读】rStar:用互洽方法增强 SLM(小型语言模型) 推理能力
  • React Native【实战范例】水平滚动分类 FlatList
  • 歌曲《我的家我的国》 构建对传统主旋律单向度超越
  • 图数据库介绍及应用,go和Java使用图数据库
  • python学习打卡day52
  • 并发编程-Synchronized
  • OpenCV——图像平滑
  • <teleport> 是 Vue 3 引入的一个内置组件,用于在 DOM 中移动组件的渲染位置,但保持组件的逻辑作用域不变
  • NLP 基础概念
  • CFCF2025光连接大会邀请函:昊衡科技诚邀您莅临光纤通信行业盛会,共话未来
  • 举例说明单片机,主循环和中断资源访问冲突的案例
  • 晶振的多面舞台:从日常电子到高精尖科技的应用探秘
  • RT_Thread内核源码分析(五)——内存管理@小堆内存管理算法
  • [Java恶补day24] 74. 搜索二维矩阵
  • SSH公私钥连接(Git、Linux服务器)