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

【延迟双删】简单解析

使用场景:【高并发】情况下的做【更新操作】
什么是延迟双删
首次删除:当需要更新某个数据项时,首先删除缓存中的该项。
更新数据库:接着,更新数据库中的该项。
短暂延迟:然后等待一段很短的时间(例如50毫秒),这段时间允许任何正在进行的读操作完成。
二次删除:最后,再次删除缓存中的该项。这样做的目的是防止在这段延迟期间有任何读操作将旧数据重新写入了缓存。2:为什么要进行再次删除(二次删除):1:为什么延迟:短暂的等待时间(延迟)是为了确保所有可能的读取请求都已完成,避免旧的数据被再次写入缓存。
2:为什么要进行再次删除(二次删除):在延迟期间,如果有其他请求读取了数据库中的旧值并将其重新写回到缓存中,那么即使你已经更新了数据库,缓存中仍然可能存在旧数据。第二次删除确保在延迟结束后,无论是否有其他请求重新填充了缓存,都会再次清理掉这些可能存在的旧数据,从而保证缓存和数据库的一致性。简单例子:// 1. 首次删除缓存jedis.del("user:" + userId + ":email");// 2. 更新数据库String sql = "UPDATE users SET email = ? WHERE id = ?";try (PreparedStatement stmt = mysqlConn.prepareStatement(sql)) {stmt.setString(1, newEmail);stmt.setInt(2, userId);stmt.executeUpdate();}// 3. 延迟一段时间(例如 50 毫秒)Thread.sleep(50);// 4. 二次删除缓存jedis.del("user:" + userId + ":email");
不做延迟双删会带来的问题:

http://www.xdnf.cn/news/1209.html

相关文章:

  • 基于无障碍跳过广告-基于节点跳过广告
  • 比特币三种扩容路径Nubit、Babylon、Bitlayer分析
  • spark和Hadoop的之间的对比和联系
  • VMware Workstation 10.0.0 完整安装与激活指南零配置
  • [贪心_3] 摆动序列 | 最长递增子序列
  • 植被参数遥感反演技术革命!AI+Python支持向量机/随机森林/神经网络/CNN/LSTM/迁移学习在植被参数反演中的实战应用与优化
  • ESM 内功心法:化解 require 中的夺命一击!
  • 用语言模型训练出图像生成和理解能力:Liquid 框架 论文速读
  • 从零开始创建MCP Server实战指南
  • 描述城市出行需求模式的复杂网络视角:大规模起点-目的地需求网络的图论分析
  • 牛客算法题目刷——链表总结
  • 软考高级信息系统项目管理师的【干系人参与度评估矩阵】详解
  • 网络流的各种模型+题单
  • 【STM32单片机】#11 I2C通信(软件读写)
  • ClickHouse进行LEFT JOIN 关联查询时, 关联键的数据类型不一致,导致报错 的解决方案详解
  • postgreSQL 如何使用 dblink
  • [创业之路-378]:企业法务 - 企业经营中有哪些触发刑法的风险?如何预防?
  • 超级扩音器手机版:随时随地,大声说话
  • 【漏洞复现】Struts2系列
  • Java核心API-网络编程
  • Relay IR的核心数据结构
  • 小刚说C语言刷题——1031 温度转化
  • LLM 论文精读(一)Scaling Laws for Neural Language Models
  • Centos7安装Jenkins(图文教程)
  • Facebook商城开通全攻略:如何解决所在地区不可使用问题?
  • Java MCP客户端SDK实现
  • Javase 基础入门 —— 02 基本数据类型
  • [Godot] C#2D平台游戏基础移动和进阶跳跃代码
  • 【多目标跟踪】sort源码环境调试
  • 企业战略到数字化落地 —— 第一章 企业战略