avatar
文章
100
标签
32
分类
5
首页
页面
  • 归档
  • 标签
  • 分类
  • 图库
  • 说说
  • 示例
文档
  • 🚀 快速开始
  • 📑 主题页面
  • 🛠 主题配置
  • ⚔️ 标签外挂
  • ❓ 主题问答
  • ⚡️ 进阶教程
  • ✨ 更新日志
留言板
语言
  • English
  • 中文
彬子的Blog
搜索
首页
页面
  • 归档
  • 标签
  • 分类
  • 图库
  • 说说
  • 示例
文档
  • 🚀 快速开始
  • 📑 主题页面
  • 🛠 主题配置
  • ⚔️ 标签外挂
  • ❓ 主题问答
  • ⚡️ 进阶教程
  • ✨ 更新日志
留言板
语言
  • English
  • 中文

数据同步

redis做为缓存,mysql的数据如何与redis进行同步呢?(双写一致性)
发表于2025-11-14|数据库
redis做为缓存,mysql的数据如何与redis进行同步呢?(双写一致性) 在项目中,我们主要通过 Redisson 的读写锁机制 来保证数据的强一致性。 当执行读取操作时,我们会加上读锁(共享锁),这样可以做到: 读读不互斥; 读写互斥。 而在更新数据时,我们会加上写锁(排他锁),此时写写、读写都互斥。 这样可以确保在写入数据库的同时,其他线程无法读取缓存数据,从而避免出现脏读或不一致的情况。 这里需要注意的一点是:读写方法必须使用同一把锁,才能真正保证互斥关系成立。 除了使用分布式锁,我们也考虑过使用 “延迟双删”策略 来实现最终一致性。 具体做法是: 先删除缓存; 再更新数据库; 最后延时一段时间后,再删除一次缓存。 不过,延迟的时间点很难精确把握。在延时窗口内仍可能出现脏数据问题,无法满足强一致性场景,因此我们最终没有采用这种方式。 在我最近做的项目中(例如简历中提到的 xxxx 功能), 系统对数据一致性的实时性要求没有那么高,可以接受一定的同步延时。 因此我们采用了 阿里巴巴的 Canal 组件 来实现最终一致性的数据同步。 Canal...
1
avatar
彬子
biny
文章
100
标签
32
分类
5
Follow Me
公告
This is my Blog
最新文章
MySQL的锁2026-01-01
垃圾收集器(CMS-G1-ZGC)与垃圾回收算法
垃圾收集器(CMS-G1-ZGC)与垃圾回收算法2025-12-30
类加载机制与类加载器
类加载机制与类加载器2025-12-28
MySQL的MVCC
MySQL的MVCC2025-12-27
SpringMVC执行流程2025-12-25
分类
  • Java10
  • 数据库10
  • 算法80
    • 模板2
    • 题解75
标签
JavaIO集合并发JVM垃圾收集MySQL索引HashMap事务MVCC锁Redis分布式锁Redisson网络模型IO多路复用过期策略淘汰策略数据结构SpringIOCDI缓存数据同步垃圾收集器垃圾回收算法VolatileSpringMVC执行流程类加载性能优化
归档
  • 2026年01月 1
  • 2025年12月 9
  • 2025年11月 8
  • 2025年10月 2
  • 2025年05月 1
  • 2025年03月 21
  • 2025年02月 15
  • 2025年01月 13
网站信息
文章数目 :
100
运行时间 :
本站总字数 :
58.8k
最后更新时间 :
©2019 - 2026 By 彬子
框架 Hexo|主题 Butterfly
搜索
数据加载中