-
-
Notifications
You must be signed in to change notification settings - Fork 19.1k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
关于缓存一致性部分的一个建议 #298
Comments
邮件已经正常接收。我会尽早查看,谢谢。
|
缓存旧数据这一步如果在第二次删除执行以后执行呢,也会不一致 |
如果是双删一致性方案的话,写请求为三步骤,假设为1删,2写db,3删。 |
第一次删缓存是完全没有必要的吧,既然数据源还没有更新,删除缓存的意义在哪里,如果数据更新成功,第二次删就足够了,如果数据更新失败,删缓存只是增加了不必要的数据库访问 |
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
关于缓存一致性部分我看举了这样一个例子,就先删除缓存,再更新,在还没更新成功的时候来了一个读请求,因为缓存为空所以去读库,结果读到了旧数据并缓存了下来,此时更新操作也成功了,就可能导致缓存不一致的问题。然后我看给的解决方案是用内存列队,等专门用一个线程去更新缓存,感觉这有些复杂了。
我就想知道这里可不可以删两次缓存,第一次删除缓存,然后更新库,更新成功之后再删除一次缓存。这样就算上面说的库还没更新成功来了一个读请求更新了缓存也无所谓,因为马上会被再次删掉,这样不就不会导致不一致的问题了吗?也不知道这种方式有没有其他问题。
The text was updated successfully, but these errors were encountered: