web-dev-qa-db-ja.com

phpは、データを検索するmemcachedノードをどのように認識しますか?

Memcachedクラスターの世界は初めてです

Memcacheを使用しているphpWebアプリケーションがある場合、どのようにハッシュを実行し、特定の値をチェックするノードを決定して、すべてをチェックする必要がないようにします。

ボーナス:すべてのハッシュを再構築する必要がない方法でノードを簡単に追加するにはどうすればよいですか?.

4
ckliborn

Memcacheクライアントは、キー値をハッシュすることで、チェックするノードを認識しています。デフォルトでは、キーのcrc32値を使用します。古いスタイルでは、あなたは次のようなことをします

serverId = crc32(key) % servers.size

これは、新しいサーバーノードを追加すると、ほとんどのものが別のノードに再マップされることを意味しました。

ボーナスとして、各ノードがN番目ごとの値ではなく、ランダムに選択されたサーバー番号によって決定されるcrc値の線形範囲をカバーする新しいスタイルを使用します。これはコンシステントハッシュと呼ばれます。

2
Jeff Ferland