3
我们当前有一个通读缓存,在缓存缺失时填充缓存时使用乐观并发控制。我们预计不会出现很多冲突,所以我们选择使用乐观并发控制。当我们实际发生冲突时,我有点不确定该怎么做。如何使用乐观并发控制解决读通缓存中的冲突?
如果我们有一个高速缓存未命中,我们从数据库中拉出相关的行,然后将其放入高速缓存以备将来参考。在我们将它放入缓存之前,我们确保自从初始数据库读取以来缓存键的值没有改变。如果有的话,我现在倾向于使缓存条目无效,只是为了安全起见,但这似乎有点低效。有没有更好的选择,仍然安全?
为了记录,我们使用Redis作为缓存层,MySQL使用我们的后备存储。