0

コンシステントハッシュを使用して、10個のmemcacheのクラスターがあります。渡されたキーがmemcached_get()利用できないサーバーで検索されると、MEMCACHED_SERVER_MARKED_DEAD応答(戻り値)だけが返されます。

この場合、キーは次に使用可能なサーバーに再配布され、次の呼び出しNOTFOUNDから取得する必要があると思います。memcached_get()ただし、まだ取得MEMCACHED_SERVER_MARKED_DEADしているため、新しい値を設定できません。

電話できることを発見しmemcached_behavior_set(..., MEMCACHED_BEHAVIOR_DISTRIBUTION)ました。これによりハッシュが再配布され、希望どおりに機能します。しかし、それは良いアプローチではないと思います。それは...ですか?

4

2 に答える 2

-1

通常、複数のmemcachedプールを処理している場合は、最初からMEMCACHED_BEHAVIOR_DISTRIBUTIONを有効にする必要があります。そうです、そのソリューションは機能します。

さらに問題が発生した場合は、MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERSを確認してください。これにより、x回の障害が発生した後、障害が発生したサーバーがプールから自動的に削除されます。

于 2011-07-16T18:58:42.570 に答える
-1

私は自分で答えを見つけました。

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

パッチを適用すると、私のすべての問題が解決しました。注意してください、私はそれが0.39以来壊れていて、誰も気にかけていないのだろうかと思います。

于 2011-07-17T13:22:07.923 に答える