【Redis笔记】缓存更新策略
缓存更新策略
- 设置缓存的过期时间,一致性差
- 主动更新,更新数据库时主动更新缓存
建议主动更新为主,过期淘汰兜底,因为主动更新也不能完全保证一致性
主动更新策略
Cache Aside Pattern
由缓存的调用者,在更新数据库的同时更新缓存Read/Write Through Pattern
缓存与数据库整合为一个服务,由服务来维护一致性。调用者调用该服务,无需关心缓存一致性问题。Write Behind Caching Pattern
调用者只操作缓存,由其它线程异步的将缓存数据持久化到数据库,保证最终一致。
推荐使用
Cache Aside Pattern
,更易实现
Cache Aside Pattern
先删除缓存还是先操作数据库?
两种方案都有可能造成缓存和数据库不一致,如下:
先删除缓存,再更新数据库:
先更新数据库,再删除缓存:
虽然两种方案都有可能造成缓存和数据库不一致,但更推荐先更新数据库再删除缓存
因为先更新数据库再删除缓存出现数据不一致概率更低,操作缓存一般比数据库更快,所以不易导致数据不一致情况发生,再配合TTL定时清除缓存