首页/数据/Redis 进阶速查/Cache Aside:旁路缓存的读写顺序
数据结构与选型42 条

Cache Aside:旁路缓存的读写顺序

读路径先查缓存,未命中回源数据库并写回缓存;写路径先更新数据库再删除缓存(而不是更新缓存),删除失败要有重试兜底。

Redis 进阶速查数据更新于 2026-10-12
读GET 未命中则查库并 SET 带 TTL
写更新库后 DEL 缓存
要点删除失败要重试或延迟双删

读路径示例

读路径示例
redis-cli GET user:1001
# 未命中:应用查库后写回
redis-cli SET user:1001 '{"name":"alice"}' EX 600
为什么删而不更新:并发写场景下更新缓存容易留下旧值覆盖新值的窗口,删除让下次读自然回源,代价是一次穿透。

易错点

  • 先删缓存再更新库的经典顺序在并发下会产生脏数据窗口,常规做法与之相反
  • 缓存与库无法强一致,业务要接受短暂不一致并给关键路径补偿手段

数据来源与参考

  • Redis 官方文档:客户端缓存与缓存模式说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌