news 2026/8/21 23:45:42

mysql与redis缓存一致性问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
mysql与redis缓存一致性问题

先更新数据库,再删除redis

  1. 没有试探机制,如果redis删除失败,永久不一致
  2. 并发问题:删除redis之前,其他线程读取到旧数据

先删除缓存,再更新数据库

  1. 没有试探机制,如果数据库更新失败,永久不一致
  2. 并发问题:更新数据库之前,其他线程读到db旧数据又写回redis旧数据

延时双删(先更新数据库,再删除redis的优化版本)

  1. 引入试探机制,先删除redis,删除成功表示redis链接可用有效
  2. 更新数据库成功说明数据库连接有效
  3. 延迟删除redis
  4. 能保证最终一致性

先更新数据,再更新redis(不推荐)

  1. 并发情况下会错乱顺序
  2. A先更新db,b后更新db。但是b先更新redis,a后更新redis。最后db是b的,redis却是a的数据

使用分布式锁

  1. 加分布式锁不需要考虑并发问题了,只考虑事务问题
  2. 先更新db,再删除redis
  3. redis失败,则db回滚
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 18:31:39

什么是设计模式?为什么 Python 也需要设计模式

在软件开发中,我们常听到“设计模式”这个概念。很多初学者会觉得这是 Java 或 C 的专属知识,但实际上,Python 开发者同样需要理解和应用设计模式。本文将带你快速理解设计模式的核心思想以及 Python 中的价值。一、设计模式是什么 设计模式&…

作者头像 李华
网站建设 2026/8/21 8:36:57

【VSCode Azure QDK调试全攻略】:掌握量子程序调试的5大核心技巧

第一章:VSCode Azure QDK调试全攻略导论量子计算作为下一代计算范式的前沿领域,正逐步从理论研究走向工程实践。在开发量子算法与应用的过程中,高效的调试工具链至关重要。Visual Studio Code(VSCode)结合Azure Quantu…

作者头像 李华
网站建设 2026/8/21 21:42:10

Everything 1.5 绿色单文件版!2.74MB 高速搜文件

文件太多找不到?这款宝藏搜索工具必须安利给你。 Everything 1.5 虽为 Alpha 版(官网正式版为 1.4),但绿色单文件版的体验已经足够能打。 下载地址:https://pan.quark.cn/s/bf04b6287e4f 备用地址:https…

作者头像 李华
网站建设 2026/8/21 3:24:17

大功率LED工矿灯推荐?

“当你还停留在‘功率越高越亮’的认知里,你的采购可能已经走上了一条费电又费钱的老路。”——LED工矿灯老炮三哥在无数次与工厂老板、采购经理的交流中发现,对于大功率LED工矿灯的挑选,很多人的思维定式是最大的隐形障碍。在工矿照明领域&a…

作者头像 李华
网站建设 2026/8/21 22:55:49

计算机毕业设计springboot混合式学习系统 基于SpringBoot的线上线下融合教学平台设计与实现 SpringBoot+MySQL构建的混合教学互动系统

计算机毕业设计springboot混合式学习系统83r516hg (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 进入二十一世纪,高速网络与云计算让知识获取不再受限于教室。疫情…

作者头像 李华