2017-08-21 25 views
1

私は3つのマスタを持つRedisクラスタを持っています。 これはキャッシングの解決策であるため、データの永続性には関心がありません。 私はWindowsでv3.2を実行しています。 サーバーの1つを手動で停止して、まだデータベースにアクセスできるかどうかを確認すると、「CLUSTERDOWN The cluster is down error」というメッセージが表示されます。 これを行うには、まだ動作しているインスタンスの1つに接続する必要があります。 これは高可用性のための解決策ではありません。 私は何かが欠けていることを願っています。 ノードの1つが停止しているときにクラスタにアクセスできない理由はありますか? ありがとうございます。あなたはRedisのクラスタ内3つのマスター・ノードを使用していることを言ったように127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002redisクラスタのテスト方法

答えて

4

を作成ruby.exeのRedis-trib.rb:

クラスタは、コマンドを作成しますノードの1つがダウンすると、CLUSTERDOWN というエラーが発生することが明らかです。

これらのタイプのエラーを回避し、高可用性を得るには、マスターノードのスレーブに接続することをお勧めします(公式Redis Clusterチュートリアルhereを参照)。

高可用性を得るには、スレーブにマスターを接続する必要があります。そのために、上記のRedis cluster tutorialのリンクで説明したこれらの行を読むことができます。

ありRedisのクラスタで16384個のハッシュスロットがあり、指定されたキーのハッシュスロットが何であるかを計算するために、我々は単にRedisのクラスタ内のすべてのノードである16384

キーを法のCRC16を取ります例えばあなたは3つのノード、ここでクラスタ有するので、ハッシュスロットのサブセットを担当:)

1)ノードAは、0から5500

2にハッシュスロットを含むノードBは、ハッシュが含まれてい5501から11000までのスロット。

3)ノードCは11001から16383

もしSET Redisのクラスタ内のキーに使用されるときはいつでもだから、それはそのキーのためにそのハッシュスロットの値を計算し、のいずれかに応じてキーを保存するために、ハッシュスロットを含んノード。 これは、すべてのノード(少なくともマスタまたはその1つのスレーブ)をRedis Clusterでアクティブにすることが必須である理由です。

その他マスターノードごとに少なくとも1つのスレーブをRedis Clusterに接続すると、Redis Clusterの可用性が向上します。マスタノードにスレーブを接続した後、マスターノードを手動で閉じることによって、より高い可用性を実現するように設定をテストできます。

関連する問題