Redis 与 MySQL 缓存一致性:从 Cache Aside 到 Outbox 与 CDC

Redis 与 MySQL 缓存一致性:从 Cache Aside 到 Outbox 与 CDC

MySQL与Redis不能形成原子事务,导致缓存一致性问题。标准实践采用Cache Aside模式:业务操作先提交MySQL,再删除Redis缓存并设置TTL。需防范删除失败导致的脏数据残留,通过异步重试队列、死信处理和实时监控缓解。热点Key需额外控制并发回源,如使用Singleflight限流、版本号校验或Lease令牌机制。多级缓存场景需广播失效事件并设置本地缓存短期TTL。最终一致性依赖严格流程:事务提交后删除缓存,同时结合业务级别控制(基础级:TTL+删除失败告警;可靠级:异步重试+补偿任务;平台级:Outbox+CDC+失效广播)。核心风险需通过版本化、延迟双删和合理SLO监控平衡。

Redis 

数据搬运的“瑞士军刀”——深入解读离线数据同步工具DataX

在上一篇文章中,我们聊了变更数据捕获(CDC) ,认识了这位擅长实时捕捉数据变化的“密探”。如果说CDC解决的是“实时感知每一次变化”的问题,那么在实际的数据工程中,我们还常常面临另一个需求:如何高效、稳定地把海量历史数据从A点搬到B点? 这时候,就需要请出另一位主角了——DataX。 一、什么是D

数据搬运的“瑞士军刀”——深入解读离线数据同步工具DataX
集捕获、计算、同步于一体的“全才”——Flink CDC

集捕获、计算、同步于一体的“全才”——Flink CDC

在之前的CDC系列文章中,我们认识了专注于MySQL的“专才”Canal,也聊过支持多数据库的“通才”Debezium。如果说它们解决了“如何捕获变更”的问题,那么今天要介绍的这位主角,则更进一步解决了“捕获之后怎么办”的问题——Flink CDC。 一、什么是Flink CDC? Flink CD

多数据库CDC“通才”——Debezium

在之前的CDC系列文章中,我们认识了擅长实时捕获MySQL变更的“专才”Canal,也聊过擅长“搬一次家”的离线同步工具DataX。如果说Canal是专注于MySQL生态的“专才”,那么今天要介绍的这位主角,就是一位支持多种数据库的“通才”——Debezium。 一、什么是Debezium? Deb

多数据库CDC“通才”——Debezium
实时同步“专才”——Canal

实时同步“专才”——Canal

在之前的文章中,我们聊过擅长“搬一次家”的离线同步工具DataX,也聊过追求“实时感知每一次变化”的CDC技术。如果说DataX解决的是“批量搬运”的问题,那么今天要介绍的这位主角,就是那位能把“每一次变化”都实时传递出去的“密探”——Canal。 一、什么是Canal? Canal [kə’næl

实时数据同步的“密探”——深入解读变更数据捕获(CDC)

在数字化转型的浪潮中,企业对实时数据的需求正在以惊人的速度增长。无论是数据中台建设、数字孪生,还是实时风控与智能决策,数据的时效性直接决定了企业的竞争力。然而,传统的批量数据同步方式(如定时ETL)往往存在分钟级甚至小时级的延迟,难以满足现代业务对数据一致性和实时性的要求。 那么,有没有一种技术能让

实时数据同步的“密探”——深入解读变更数据捕获(CDC)
千万级数据下,MySQL 分页优化的正确姿势

千万级数据下,MySQL 分页优化的正确姿势

在业务系统中,分页查询是最常见的功能之一。但当数据量攀升到千万级时,你会发现传统的 LIMIT offset, pageSize 变得奇慢无比,越往后翻页越慢,甚至拖垮数据库。 本文将带你层层拆解深分页的性能痛点,并给出从原理到实践的终极优化方案。 一、传统分页为什么慢? 一个经典的查询: SELE

MySQL 性能隐形杀手:回表机制深度解析

如果你已经在使用索引,查询却依然很慢,很可能你正遭遇 “回表” 带来的隐形性能损耗。今天这篇文章,我们来把回表这个概念,从原理到优化手段,讲得清清楚楚。 一、用一个故事理解什么是回表 想象一座巨大的图书馆: 一楼是按书名拼音排序的索引卡片柜。每张卡片上只有“书名 + 书所在的书架号”。 二楼是按照书

MySQL 性能隐形杀手:回表机制深度解析
MySql如何建立高效的复合索引?

MySql如何建立高效的复合索引?

高效复合索引是 MySQL 查询优化的核心,设计得当能让查询速度提升几个数量级。下面从原则、步骤到实战案例,系统梳理如何建立。 1. 核心设计原则 ① 最左前缀原则 复合索引 (A, B, C) 相当于创建了: (A) (A, B) (A, B, C) 三个索引。

Redis为什么这么快?

Redis 快,主要不是因为某一个原因,而是多个设计共同作用的结果: 内存操作 + 单线程模型 + IO 多路复用 + 高效数据结构 1. 单线程模型:避免复杂的线程竞争 Redis 的核心命令执行长期以来主要是单线程模型。 也就是说,大部分命令是由一个主线程顺序执行的。 这样有几个好处:

Redis 
Redis为什么这么快?