写更新缓存数据代码时,先删除缓存,然后再更新数据库的方法,如果改变下删除缓存的方式,是可以简单地解决问题地
先删除缓存,可以不是真的删除:可以改为软删除,记录缓存的 version 和过期时间(比数据库过期时间长一秒就可以)——当查询操作操作发现软件删除时,会直接从数据库取数据,数据库数据的 vesion 小于等于缓存 version 时就不更新缓存,大于缓存 version 时就更新。
如果数据库操作失败,就真删除缓存,如果删除缓存失败,因为有过期时间兜底,问题不会太大。
如果数据库操作成功,有查询操作就会更新缓存。
1
geebos 2020-10-29 00:52:49 +08:00
没必要弄个 version,更新缓存的代价可以忽略不计,你这还加个 version 字段反而把问题搞复杂了
|
2
Leigg 2020-10-30 08:39:45 +08:00 via Android
血崩考虑过不
|