缓存与数据库双写一致性
·
更新于 ·
giftia
为什么不一致

缓存与数据库双写一致性方案
1. 更新数据库之后删除缓存(解决部分不一致)
2. 加分布式锁(完全一致性,性能较差)
3. canal 异步更新缓存(最终一致性,性能较好)

4. 设置较短的过期时间(最终一致性,性能较好,最简单)
延迟双删(方案1的优化)
处理缓存删除与数据库更新之间的并发请求:
- 先删除 Redis 缓存
- 更新 MySQL
- 延迟一小段时间(如几百毫秒),再次删除 Redis 缓存
延迟目的是清除在时间窗口内并发读请求写入的旧数据。