Go 缓存与数据库一致性:Cache Aside、延迟双删怎么实现
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
常见模式:① Cache Aside(旁路缓存):读(缓存 miss → 查库 → 写缓存);写(先更新 DB,再删缓存——延迟双删防并发不一致);② 最终一致:异步消息(DB binlog → MQ → 更新缓存)、Canal 监听;③ 强一致:DB 为主,缓存只加速(读穿透)。坑:缓存与 DB 双写不一致、缓存雪崩(过期时间加随机)、穿透(布隆过滤器/空值缓存)、击穿(单 key 热点加锁重建)。原则:能容忍最终一致用异步,强一致避免用缓存做数据源。
回复
0 条回复