【Redis笔记】缓存更新策略

缓存更新策略

  • 设置缓存的过期时间,一致性差
  • 主动更新,更新数据库时主动更新缓存

建议主动更新为主,过期淘汰兜底,因为主动更新也不能完全保证一致性

主动更新策略

  • Cache Aside Pattern
    由缓存的调用者,在更新数据库的同时更新缓存
  • Read/Write Through Pattern
    缓存与数据库整合为一个服务,由服务来维护一致性。调用者调用该服务,无需关心缓存一致性问题。
  • Write Behind Caching Pattern
    调用者只操作缓存,由其它线程异步的将缓存数据持久化到数据库,保证最终一致。

推荐使用Cache Aside Pattern,更易实现

Cache Aside Pattern

先删除缓存还是先操作数据库?
两种方案都有可能造成缓存和数据库不一致,如下:
先删除缓存,再更新数据库:

先更新数据库,再删除缓存:

虽然两种方案都有可能造成缓存和数据库不一致,但更推荐先更新数据库再删除缓存
因为先更新数据库再删除缓存出现数据不一致概率更低,操作缓存一般比数据库更快,所以不易导致数据不一致情况发生,再配合TTL定时清除缓存

posted @ 2020-07-06 23:30  .Neterr  阅读(162)  评论(0编辑  收藏  举报