标签频道
缓存一致性
该标签下的文章、提问与讨论帖。
【背景】 我做了 3 年数据工程,最近在一个读多写少、但写路径对一致性敏感的场景里反复纠结一件事:缓存和 DB 到底怎么保证「读到的不是脏数据」。我们这套是 MySQL 8.0 + Redis 7(Cluster,16 shard)+ Sp
背景 社区里对「双删 / 延迟双删 / MQ 失效」怎么选已经有不少讨论(见引用),我们线上也是「先更新 DB,再删 Redis」+ 延迟双删兜底,代码里延迟时间是一个写死的常量 500ms,注释写着「参考网上经验值」。 最近一次事故让我意
【背景】 最近帮一个业务团队看缓存问题,他们用的是最经典的「先更新 DB,再删 Redis」,但线上偶现脏数据——读到的还是旧值,窗口期大概几百毫秒到一两秒。我准备给他们换成「延迟双删」或者「DB 变更走 binlog/MQ 异步删缓存」,
【背景】 Kafka 2.8(3 broker,min.insync=2)承载订单事件 topic "order-events",6 分区,消费组 3 实例(每实例 2 分区)。下游是 MySQL 8.0 写订单表 + Redis 6.2
«结论先行:「先更新 DB 再删缓存」不是错,错的是把删除当成一次性的、同步的、必定成功的事件。缓存一致性事故 90% 不是「顺序写反了」,而是「删缓存这一步本身会失败、会乱序、会被旧读回填」。下面用一次真实的改价事故,把机制、正确顺序、以
背景 在数据工程和后端高并发领域,"缓存和数据库不一致"几乎是每个团队都撞过的墙。但每次聊起来,发现大家的做法差异非常大,而且往往跟业务场景、团队规模、运维能力强相关——没有银弹,只有取舍。我做了 10 年数据工程,见过从"纯 TTL 兜底
文
标题
摘要