Redis更新缓存之双重检查 - 邓维

news/2025/11/20 14:13:25/文章来源:https://www.cnblogs.com/dw3306/p/19246891
 
Redis更新缓存之双重检查

 

 

这是一个非常经典且重要的并发缓存设计模式。在缓存更新的逻辑中,在加锁前加锁后都去读取缓存,这通常被称为 “双重检查”(Double-Check),它的目的是为了解决高并发场景下的一些核心问题。

 

1、 核心思想与流程

这个模式最常见的应用场景是 “缓存重建”:当缓存失效(不存在)时,我们需要从数据库中加载数据并写入缓存。

如果没有锁,在超高并发下,会有大量请求同时发现缓存失效,然后同时去访问数据库,导致 “缓存击穿” 。加锁就是为了防止这种情况。

标准流程如下:

1. 第一重检查(锁外)

  • 请求到达,首先查询缓存。
  •  如果缓存存在:直接返回数据,流程结束。这是最快速的路径,避免了任何锁开销
  • 如果缓存不存在:进入下一步。

2. 加锁

  • 在尝试重建缓存之前,先获取一个分布式锁(如果是单机服务,可以用本地锁如 `synchronized` 或 `ReentrantLock`)。
  •  目的:确保同一时间只有一个线程/请求能够执行重建缓存的逻辑。


3. 第二重检查(锁内)

  • 在获得锁之后,再次查询缓存
  • 为什么? 因为在当前请求等待锁的期间,可能**已经有另一个先拿到锁的线程完成了缓存重建**。
  • 如果缓存存在:说明数据已经被其他线程写入了。那么当前线程直接释放锁,然后使用缓存中的数据即可,无需再访问数据库。
  • **如果缓存仍然不存在**:说明当前线程是第一个(也是唯一一个)需要去重建缓存的线程。进入下一步。


4. 执行业务逻辑 & 重建缓存

  • 从数据库查询数据。
  • 将数据写入缓存。
  • 释放锁。

 

为什么需要两次读取缓存?

我们可以通过一个生动的并发场景来理解:假设在某一时刻,缓存 `key=A` 失效,同时有 **1000 个并发请求** 涌入。

image

 

示例代码:

public String getData(String key) {// 第一重检查:锁外检查(快路径)String data = cache.get(key);if (data != null) {return data;}// 缓存不存在,尝试获取锁String lockKey = "lock:" + key;boolean locked = distributedLock.tryLock(lockKey);if (!locked) {// 没拿到锁,可以稍后重试,或者直接去查数据库(不推荐),这里我们简单等待一下再递归调用Thread.sleep(100);return getData(key);}try {// 第二重检查:锁内检查(双重检查)data = cache.get(key);if (data != null) {return data;}// 缓存确实为空,执行重建逻辑data = database.query(key);cache.set(key, data, ttl);return data;} finally {distributedLock.unlock(lockKey);}
}

总而言之,**加锁前读缓存是为了效率,加锁后读缓存是为了正确性和进一步的效率优化**。这是一个在高并发环境下兼顾性能与数据一致性的经典设计。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/971012.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSH 客户端 MobarXterm 安装和使用笔记

一、介绍常用SSH 客户端对比Xshell:个人免费,商业收费,之前爆出过有隐藏后门。不推荐Finshell:基础功能免费,高级功能收费,基于Java,内存占用较高(在1个G左右)。不推荐MobarXterm:基础功能免费、高级功能收费…

已有ERP和MES,为什么还需要质量管理系统(QMS)?

很多企业已经有了ERP和MES系统,但是产品合格率依旧不能令人满意,质量风险依旧很大,客户投诉不断。为什么会这样?这是大多数企业质量管理的现状。质量数据分散在各个系统,而这些系统里面的质量模块很不专业。 工欲…

2025年质量气体流量计直销厂家权威推荐榜单:超微量气体流量计/甲烷气体流量计/小口径气体流量计源头厂家精选

在工业自动化与精密测量需求持续增长的背景下,质量气体流量计凭借其高精度测量、直接质量流量输出等技术优势,已成为半导体、生物医药、新能源等高端制造领域的关键仪表。行业数据显示,2025年全球气体流量计市场规模…

SBD3D60V1H-ASEMI可直接替代安世PMEG6010CEJ

SBD3D60V1H-ASEMI可直接替代安世PMEG6010CEJ编辑:ll SBD3D60V1H-ASEMI可直接替代安世PMEG6010CEJ ASEMI首芯半导体可替代安世半导体功率器件 型号:SBD3D60V1H 品牌:ASEMI 封装:SOD-323 特性:肖特基二极管 正向电流…

机器学习之决策树模型

View Post机器学习之决策树模型一、决策树是什么 决策树是一种监督学习算法,既可以用于分类任务,也可以用于回归任务。其基本思想是通过一系列“是/否”的判断将数据逐步分裂成小的子集,直到每个子集足够“纯净”,…

重庆一对一辅导机构精选推荐,2025合规家教机构口碑排名已公布,附师资实力测评

你是否也在为孩子的课外辅导操碎了心?在重庆,想为孩子找一家靠谱的一对一辅导机构,总免不了面对同样的糟心事:怕师资掺水、怕价格虚高、怕耗时良久却看不到提分效果。这种择校焦虑,在小学升初中、初三面临中考、高…

251119D. mod

251119D. mod 维护一个小根堆,有两种操作共 \(n\) 次,在 \([l_i,r_i]\) 中均匀随机一个整数 \(x\),插入小根堆。 弹出最小值。问最终剩下的所有数的积的期望。 \[n,l_i,r_i\le500 \] 下文中,当值相同时令更早的数更…

2025 年 11 月开关柜厂家权威推荐榜单:高压开关柜,低压开关柜,智能开关柜,配电开关柜公司精选

2025 年 11 月开关柜厂家权威推荐榜单:高压开关柜,低压开关柜,智能开关柜,配电开关柜公司精选 随着我国电力装备制造业的持续升级,开关柜作为电力系统中不可或缺的关键设备,其技术水平和产品质量直接影响着电网运…

西门子MES已有质量模块,为何再斥资收购QMS?

西门子MES已有质量模块,为何再斥资收购QMS?深度剖析工业软件的“专”与“全” 西门子,这个昔日的工业巨擘,已悄然转型为仅次于SAP的欧洲第二大软件公司。其构建的庞大工业软件帝国,拥有全球品类最全、竞争力最强的…

2025 年 11 月开关柜供应厂家推荐排行榜,高压开关柜,低压开关柜,配电开关柜,智能开关柜公司推荐

2025年11月开关柜供应厂家推荐排行榜:高压开关柜、低压开关柜、配电开关柜、智能开关柜公司推荐 行业背景与发展趋势 开关柜作为电力系统中不可或缺的关键设备,在输配电环节扮演着核心角色。随着智能电网建设的深入推…

重庆一对一家教机构口碑推荐,2025辅导机构最新排名出炉,带详细选课攻略

重庆的家长们,你是不是也在为孩子的课外补习操碎了心?想给小学、初中、高中的孩子找靠谱的一对一辅导,却在渝中区、江北区、南岸区、九龙坡区、沙坪坝区、大渡口区、北碚区、渝北区、巴南区、涪陵区、江津区、合川区…

成都一对一家教机构推荐,2025最新辅导机构家长实测口碑榜

成都不少家长在为孩子选一对一家教时都面临难题:小学孩子注意力不集中,普通家教难以把控课堂节奏,补了几节课还是坐不住;初中孩子偏科明显,找的家教却总抓不准知识漏洞,成绩不见起色;高中孩子冲刺高考,想找懂本…

2025 年 11 月聚氨酯厂家推荐排行榜,聚氨酯组合料/黑白料/AB料/管道料/发泡剂,外墙/冷库聚氨酯保温材料公司精选

2025 年 11 月聚氨酯厂家推荐排行榜,聚氨酯组合料/黑白料/AB料/管道料/发泡剂,外墙/冷库聚氨酯保温材料公司精选 聚氨酯材料作为一种多功能高分子化合物,在建筑保温、冷链物流、工业管道等领域发挥着重要作用。随着…

2025 年 11 月轴承厂家推荐排行榜,瓦房店轴承,深沟球轴承,调心滚子轴承,圆锥滚子轴承源头厂家实力解析与选购指南

2025 年 11 月轴承厂家推荐排行榜,瓦房店轴承,深沟球轴承,调心滚子轴承,圆锥滚子轴承源头厂家实力解析与选购指南 行业背景与发展现状 轴承作为工业装备的核心基础零部件,其性能直接影响机械设备的运转效率和使用…

vscode没有开启自动保存引起的麻烦

新电脑装了vscode和hbuilderX, 因为是uniapp项目,需要在hbuilderX上运行到浏览器, 突然发现在vscode上写了console.log, 没有输出显示, 查了一通, 也问了ai, 还是没有解决. 最后突然想到看看hbuilderX上有没有该consol…

2025 年 11 月塑胶配件厂家推荐排行榜,塑胶外壳,塑胶组件,精密塑胶件,塑胶零件,塑胶边框,塑胶注塑件公司推荐

2025年11月塑胶配件厂家推荐排行榜:塑胶外壳、组件与精密零件优选指南 随着制造业智能化转型加速,塑胶配件作为工业基础元件的重要性日益凸显。从汽车电子到智能装备,从通信设备到消费电子,精密塑胶件的性能直接影…

2025 年 11 月高温老化房厂家推荐排行榜,老化室/高温老化室/高温房/熟化房/固化房,恒温恒湿室/恒温房/恒温恒湿房公司推荐

2025 年 11 月高温老化房厂家推荐排行榜,老化室/高温老化室/高温房/熟化房/固化房,恒温恒湿室/恒温房/恒温恒湿房公司推荐 在工业制造、科研测试和产品开发领域,高温老化房、老化室、高温老化室、高温房、熟化房、固…

快速下载huggingface模型 -----镜像 huggingface.co 域名

域名 hf-mirror.com,用于镜像 huggingface.co 域名。作为一个公益项目,致力于帮助国内AI开发者快速、稳定的下载模型、数据集。捐赠支持请看网页左下角,感谢支持! 快速下载及工具请见地址:https://hf-mirror.com/ …

黄山一对一家教辅导机构推荐:2025年综合实力权威排行榜,终极测评

“给孩子选课外补习平台比给自己找工作还难!”这是黄山屯溪区家长刘女士的真切感慨。她的孩子上初三,数学成绩长期在及格线徘徊,两个月内试了3家教育机构,要么老师讲课照本宣科,要么课后没人跟进,钱花了近万,成…

第四讲自注意力机制self-attention

第四讲自注意力机制self-attention 输入是一堆向量的案例:文字处理、声音处理、 一.文字处理 将输入词汇变成数组的方法: 1.one hot encoding独热编码 用一个很长的数组,然后不同位置为1表示不同词汇,可能意思或类…