假设我在开头有两个memcached节点(节点A,B ),当我添加一个新的节点C 时,一部分键被重新映射并且感谢一致的散列只有其中一些。
假设最初在服务器A处使用键“ foo ”的值现在将映射到服务器C.
当我最终删除节点C时,密钥应该再次映射到节点A,但此时节点A只包含过时数据。
那么,刷新数据是解决这个问题的唯一方法吗?
答案 0 :(得分:2)
我认为与陈旧数据有关的唯一事情就是......什么都没有!要知道,如果引入新服务器,部分缓存将失效。就这样!让memcached在那一刻到来时为你摆脱陈旧的数据!
另一件事是你不能自己摆脱陈旧的对象,因为你不知道哪个服务器存储该对象(感谢一致的散列算法)。
希望回答你的问题。
答案 1 :(得分:2)
你的问题归结为"你的缓存中的数据陈旧&#34 ;;那么如何纠正呢?
因此您需要使用最新值更新缓存。我不认为有任何替代方案。 您可以根据系统要求考虑不同的方法来优化它。