一、缓存一致性问题的本质与核心挑战
(一)数据不一致的三大根源
- 分布式事务缺失
数据库与缓存的更新无法通过传统事务保证原子性,典型场景如:- 更新数据库成功但缓存更新失败
- 缓存删除成功但数据库更新失败
本质:分布式环境下CAP定理的必然妥协,强一致性与可用性不可兼得。
- 并发操作时序冲突
- 读写并发:读请求命中旧缓存,而写请求正在更新数据库(如电商库存扣减)。
- 写写并发:多个更新操作顺序错乱导致版本覆盖(如社交动态点赞计数)。
案例:
请求A: 写DB(X=1) → 删缓存 请求B: 写DB(X=2) → 删缓存 可能执行顺序: A删缓存 → B删缓存 → A写DB → B写DB → 缓存回填X=1(旧值)
- 系统架构复杂性
- 多级缓存架构(L1本地缓存+L2