首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理MEMCACHED_SERVER_MARKED_DEAD?

如何处理MEMCACHED_SERVER_MARKED_DEAD?
EN

Stack Overflow用户
提问于 2011-07-13 17:56:25
回答 2查看 1.8K关注 0票数 0

我有一个由10个memcaches组成的集群,使用一致的散列。当在不可用的服务器上搜索传递给memcached_get()的键时,我只得到MEMCACHED_SERVER_MARKED_DEAD响应(返回值)。

在这种情况下,我希望密钥应该被重新分发到下一个可用的服务器,并且我应该从下一个memcached_get()调用中获得NOTFOUND。然而,我仍然得到MEMCACHED_SERVER_MARKED_DEAD,所以我不能设置一个新值。

我发现我可以打电话给memcached_behavior_set(..., MEMCACHED_BEHAVIOR_DISTRIBUTION)。这会导致哈希重分布,然后它就会像我希望的那样工作。然而,我不认为这是一个好的方法。是吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-17 21:22:08

我自己找到了答案。

https://bugs.launchpad.net/libmemcached/+bug/777672

应用补丁解决了我所有的问题。注意,我想知道它从0.39开始就已经坏了,没有人关心它。

票数 -1
EN

Stack Overflow用户

发布于 2011-07-17 02:58:43

通常,如果您正在处理多个memcached池,则希望从一开始就启用MEMCACHED_BEHAVIOR_DISTRIBUTION。所以,是的,这个解决方案是可行的。

如果您还有进一步的问题,请查看MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS,它将在x次失败后自动从池中清除失败的服务器。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6677111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档