缓存一致性问题中的三大读写策略?
补充,
- 因为db的innodb中使用的mvcc锁机制下来保证线程安全,而mvcc并不是强同步性,其中对读操作是可以允许一定的并发的,而db的读操作会对缓存实行写操作,导致缓存可能会被并发更新,而导致出现db和缓存数据不一致的情况发生。 --解决方案:对缓存的更新实行锁/分布式锁来解决这个并发更新带来的线程安全问题。
- 所以,应用层对缓存的更新可能是并发的;db对缓存的更新同样也可能是并发的。
1. 旁路缓存模式(cache aside Pattern)
-
写:先更新DB;然后删除缓存
-
读:先读cache,cache中存在则直接返回;ceche不存在,则读db;将读取到的内容同步到ceche
-
问题1