2017-01-06 8 views
0

Redisはマスターマスターレプリケーションをサポートしていません。私は、コンフィギュレーションがあることがわかりますRedisのチュートリアルRedisクラスタ/ロードバランシング

、6節、3マスター、3人の奴隷、

でいずれかがこの構成の目的が何であるかを教えてもらえます(スレーブがフェールオーバーのためのものです、3マスターの目的は何ですか?)

私の要件は、アプリケーションサーバーからRedisへの接続数を減らすことです。だから私は複数のredisノードを指し示すことができる方法を探していたので、redisノード1から鍵を作成すると、その鍵をRedisノード2から削除できます。

可能でしょうか?

答えて

1

あなたが機能def check_create_parameters

のRedis-trib.rb

ではほとんどの作業を行う場合は、デフォルトの設定を変更することができますまず第一に。 1つのマスターレプリカと1つのスレーブレプリカを設定できます。

この構成の目的は、フォールトトレランスのためです。スレーブは、読み込み(READONLY)にも使用できます。 3つのマスターでは、ハッシュ・スロットが均等に分散され、再分散可能なロード・バランシング・アルゴリズムと実際の鍵が使用されます。ノード間のキーをdistirbutes可能なアルゴリズムのステップは、(私がテストし、それが期待通りに動作します)、次のとおりです。

  1. はマスター
  2. 人の観衆は、彼らが
  3. を保持するキーの総数を取得して下さい各マスター・ノード・ストア各マスターキーの 分布は(クラスタの合計鍵/マスタの数 )
  4. をバランスするように保持しなければならないホスト名、ポート、および
  5. キーを計算するキーの数のためにどの検索マスターノードそれぞれのキーとそれらが
  6. は、それらが受信またはキーを配っさ かどうかに応じて、ソースまたはターゲットノードとしてマスターを特徴付ける取る/与えなければならないキーの総量 を取るか、または与える必要があり
  7. スタート標的とするために、ソースノードから移行ノード、最初 hashslotsと、関連するキーとすべての マスターキー

の同じ量にこのアルゴリズムを持つまで反復は、応答時間を最小化するのに役立ちます。意味:

3つのマスターを使用すると、応答時間を最小限に抑えることができます。 1つのマスターを持つ構成があり、このマスターが例えば30000#キーを保持している場合、1000キーを一度に取得する応答時間は、15000をそれぞれ保持する2マスターの構成から>です。

master1にキーを作成した場合、master2からそのキーにアクセス(読み取り)しようとすると、MOVEDエラーが発生します。したがって、解決策は、ハッシュ・スロットを対応するノードにマップするスマート・クライアントを作成することです。したがって、master2が正しいマスターにリクエストをリダイレクトする場合にのみ、master2からキーを削除することができます。

希望に役立ちます。

+0

上記の情報を提供することはできますか? – quintindk

+0

をご覧ください:https://www.researchgate.net/publication/309732099_Load_Balancing_in_In-Memory_Key-Value_Stores_for_Response_Time_Minimization – Antonis