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

延迟双删介绍

这篇文章资料来自于网络,是对部分知识整理,这里只是记录一下,仅供参考

1、何为延时双删

        延迟双删(Delay Double Delete)是一种在数据更新或删除时为了保证数据一致性而采取的策略。这种策略通常用于解决数据在缓存和数据库中不一致的问题。

        具体来说,在某些场景下,我们需要先更新或删除数据库中的数据,然后再更新或删除缓存中的数据,以保证数据的一致性。但在某些情况下,由于网络延迟、服务器故障或其他原因,可能导致缓存中的数据更新或删除失败,从而导致数据库和缓存中的数据不一致。

        值得注意的是,不管哪种方案,都避免不了Redis存在脏数据的问题,只能减轻这个问题,要想彻底解决,得要用到同步锁和对应的业务逻辑层面解决。

2. Q & A

  • 延时双删有啥作用?
    • 为了使得缓存和数据库数据最终一致。
  • 为什么要删除缓存数据,而不是修改?
    • 如果是修改,并发修改数据场景,先改缓存的有可能后改库,先改库的也可能后改缓存。
  • 为什么要睡眠延时一段时间?
    • 读写分离是解决高并发比较有效的方案,但是缓存/库的主从是异步更新数据的。
    • 睡眠一段时间,就是为了库和缓存能实现数据主从同步。
  • 延时双删能确保缓存和数据库最终一致吗?
    • 不能确保。
    • 只能通过延时最大程度上提高数据的最终一致的概率。
    • 如果缓存和数据库负载很高,主从同步很慢,很有可能不能在延时的时间内实现同步。
  • 脏读怎么办?
    • 确实有这问题,要知道这是最终一致,并不是强一致,最后一次删除就是为了最终一致^_^!
    • 所以要确保你的业务场景能忍受数据最终一致的缺陷,实在不行你读主库呗。
    • 优化业务逻辑的设计,具体请参考下文的:通过业务设计加强数据一致性 章节。
  • 为什么要有第一次删除缓存?
    1> 删除脏读。
    2> 提前实现其它操作的数据最终一致。
    • 延时双删有 4 个步骤,全部执行完才能实现数据最终一致,可能会比较慢!
    • 延时双删第三个步骤延时等待是比较漫长的,有可能在等待时间超时前,数据就已经完成同步了。在并发环境中,如果其它并发环节增加第一次删除,可能会提前实现前面操作的数据最终一致,不用等延时双删四个步骤都完成。

参考

https://juejin.cn/post/7540494849926840383

https://blog.csdn.net/Aqting/article/details/131880734

https://zhuanlan.zhihu.com/p/467410359

http://www.dtcms.com/a/540796.html

相关文章:

  • 如何自学开发
  • 游戏类企业网站模板wordpress为什么进不去了
  • 告别设备限制!CodeServer+cpolar让VS Code随时随地在线编程
  • n8n安装教程和快速开始实现模型对话
  • DooTask 1.3.38 版本更新:MCP 服务器与 AI 工具深度融合,开启任务管理新体验
  • 14天极限复习软考day5-23年真题
  • 【面试高频】手写 Promise 四大并发方法
  • 所有网站的名字大全爱客装修官网
  • 互联网大厂Java面试实录:Spring Boot微服务架构实战与JVM深度调优
  • Comparator 比较器 算法排序工具
  • 做网站的流量怎么算钱浦东网站建设箱海运
  • 【LeetCode热题100(55/100)】子集
  • 网站底部设计代码响应式网站检测工具
  • 前端开发,为什么容易被边缘化?
  • PartList::getNamedPart(...)获取对象为空
  • 做食品网站有哪些东西企业信息管理系统erp
  • 廊坊网站制作费用青海西宁网页网站制作
  • 东莞好的网站建设哪家好做设计找素材那个网站最好用
  • php 怎么做视频网站陕西省建设网三类人员成绩公示
  • 多模态的大模型文本分类模型代码(一)——准备阶段
  • 算法———栈
  • 甜点的网站建设规划书企业qq和个人qq有什么区别
  • java公式解析工具
  • 元推理:自指自洽,求道求德,美轮美奂
  • IE-Sec笔记7
  • 【Linux基础知识系列:第一百六十一篇】终端文件管理器:Midnight Commander (mc)
  • Google Veo 3.1 提示词生成器:让 AI 视频创作效率翻倍的免费工具
  • 【医学影像 AI】AutoMorph:基于深度学习的视网膜血管自动化分析工具
  • 郑州做网站找赢博科技定制app开发
  • 使用Docker安装Jenkins:完整指南与最佳实践