写更新缓存数据代码时,先删除缓存,然后再更新数据库的方法,如果改变下删除缓存的方式,是可以简单地解决问题地
先删除缓存,可以不是真的删除:可以改为软删除,记录缓存的 version 和过期时间(比数据库过期时间长一秒就可以)——当查询操作操作发现软件删除时,会直接从数据库取数据,数据库数据的 vesion 小于等于缓存 version 时就不更新缓存,大于缓存 version 时就更新。
如果数据库操作失败,就真删除缓存,如果删除缓存失败,因为有过期时间兜底,问题不会太大。
如果数据库操作成功,有查询操作就会更新缓存。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.