做法顺序:先写数据库,再写缓存
并发性的问题:
由于卡顿等原因,导致写缓存2在最前,写缓存1在后面就出现了不一致
脏数据问题:
这是暂时性的脏数据问题,但是在数据稳定,缓存过期以后,又能得到最新的正确数据
读到的最新数据有延迟:最终一致性
做法顺序:先写数据库,在删除缓存
并发下的问题:
由于网络或者i/o问题导致第三个请求拿到了数据库中数据:db-1,此时第二个请求数据库写更新db-1->db-2已完成,立刻删除缓存,第三个请求又将缓存刷新成第一个请求时的数据
还是会出现脏数据问题:最终不一致性
无论是双写模式还是失效模式,都会导致缓存的不一致问题。即多个实例同时更新会出事。怎么办?
原文:https://www.cnblogs.com/lzghyh/p/13276514.html