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

【redis使用场景——缓存——双写一致性】

redis使用场景——缓存——双写一致性

  • 双写一致性问题的本质与场景
  • 典型不一致场景分析
    • ​​并发写操作导致的不一致​​
    • ​​读写交叉导致的不一致​​
    • ​​主从同步延迟导致的不一致​​
  • 解决
    • 延迟双删策略(推荐)
      • 优点​​:
      • ​​缺点​​:
    • 分布式读写锁方案
      • 优点​​:
      • ​​缺点​​:
  • 消息队列异步补偿

双写一致性问题的本质与场景

双写一致性指的是当修改数据库数据时,也需要同步更新缓存数据,确保缓存和数据库的数据保持一致。这一问题在高并发场景下尤为突出,据统计,电商大促期间因缓存不一致导致的订单异常可达总故障的37%。

典型不一致场景分析

​​并发写操作导致的不一致​​

线程A更新数据库为100,开始更新Redis时出现卡顿
线程B更新数据库为80,并成功更新Redis为80
线程A恢复后继续更新Redis为100
最终结果:MySQL=80,Redis=100,数据不一致

​​读写交叉导致的不一致​​

线程A更新数据库为99
线程B从Redis读取旧值100
线程A删除Redis缓存
最终用户B获得过期数据

​​主从同步延迟导致的不一致​​

主库更新后立即删除Redis缓存
从库尚未同步最新数据
查询请求从从库读取旧数据并回填Redis
导致Redis中保留旧数据

解决

延迟双删策略(推荐)

在更新数据库前后各删除一次缓存,第二次删除采用延迟方式(​​考虑到主从同步延迟​​和​​并发读写竞争​​)

优点​​:

  • 实现相对简单
  • 性能影响较小
  • 保证最终一致性

​​缺点​​:

  • 无法保证强一致性
  • 延迟时间难以精确设定(需考虑主从同步时间)
  • 吞吐量会降低
  • ​​适用场景​​:允许数据短暂不一致、对性能要求较高的场景,如文章浏览量更新

分布式读写锁方案

​​核心思想​​:通过读写锁控制并发访问,读操作加读锁,写操作加写锁

优点​​:

  • 保证强一致性
  • 从根源避免读写并发问题

​​缺点​​:

  • 性能影响较大(吞吐量可能下降40%-60%)
  • 代码侵入性强
  • 锁竞争可能导致延迟
  • ​​适用场景​​:金融交易、账户余额等对一致性要求极高的系统

消息队列异步补偿

​​核心思想​​:通过消息队列(MQ)保证缓存操作最终执行

数据库 → Binlog → 消息队列 → 缓存更新Worker → Redis

http://www.lryc.cn/news/573853.html

相关文章:

  • 文心一言(ERNIE Bot):百度打造的知识增强大语言模型
  • 一键打包利器:gopack - 极简Go程序编译与压缩工具
  • Ollama按照与使用
  • openapi-generator-maven-plugin自动生成HTTP远程调用客户端
  • Java面试复习指南:基础、面向对象、Java 8新特性及并发编程
  • ASP.NET Core API文档与测试实战指南
  • 编程江湖-Git
  • 分库分表下的 ID 冲突问题与雪花算法讲解
  • 【数据结构】_二叉树部分特征统计
  • python基础(3)
  • 【论文阅读 | CVPR 2024 |Fusion-Mamba :用于跨模态目标检测】
  • 利用通义大模型构建个性化推荐系统——从数据预处理到实时API部署
  • 算法-动态规划-钢条切割问题
  • 简单工厂模式,工厂模式和注册工厂模式
  • Go 循环依赖的依赖注入解决方案详解
  • Cache Travel-09-从零开始手写redis(17)v1.0.0 全新版本架构优化+拓展性增强
  • AI三步诊断心理:比ChatGPT更懂人心
  • C#Halcon从零开发_Day14_AOI缺陷检测策略1_Bolb分析+特征分析_饼干破损检测
  • JavaScript性能优化实战
  • MySQL索引分类有哪些?
  • RA4M2开发IOT(9)----动态显示MEMS数据
  • 基于python代码的通过爬虫方式实现TK下载视频(2025年6月)
  • 支付宝携手HarmonyOS SDK实况窗,开启便捷停车生活
  • 湖北理元理律师事务所:构建可持续债务优化的双轨解法
  • all()函数和any()函数
  • Linux->进程概念(精讲)
  • JavaEE-Mybatis进阶
  • 图灵完备之路(数电学习三分钟)----门的多路化
  • 创客匠人行业洞察:创始人 IP 的核心能力构建与长期主义实践
  • YSYX学习记录(十一)