#Redis クラスターのスプリット ブレインとは何ですか?
Redis クラスターのブレイン スプリットとは、ネットワークの問題により、Redis マスター ノード、Redis スレーブ ノード、センチネル クラスターが異なるネットワーク パーティションにあることを意味します。このとき、センチネル クラスターは存在を感知できません。スレーブ ノードをマスター ノードに昇格させます。 (推奨される学習:redis ビデオ チュートリアル )
現時点では、ちょうど脳が 2 つに分かれているように、2 つの異なるマスター ノードがあります。 クラスターのスプリット ブレイン問題では、クライアントが元のマスター ノードに基づいてデータを書き込み続けると、新しいマスター ノードはデータを同期できなくなります。ネットワークの問題が解決すると、センチネルはクラスタは元のマスター ノードを元のマスター ノードに置き換えます。ノードはスレーブ ノードに縮小されます。このとき、新しいマスターからデータを同期すると、大量のデータ損失が発生します。解決策
redis 構成ファイルには 2 つのパラメータがあります
min-slaves-to-write 3 min-slaves-max-lag 10最初のパラメータは最小値を表しますマスターに接続されているスレーブの数2 番目のパラメーターは、スレーブがマスターに接続するまでの最大遅延時間を示しますマスターに接続されているスレーブの数が最初のパラメーターより少ない場合、および ping 遅延時間が 2 番目のパラメーター以下の場合、マスターは書き込みリクエストを拒否します。これら 2 つのパラメーターを設定した後、クラスターのブレイン スプリットが発生すると、元のマスター ノードは書き込みリクエストを拒否します。これにより、データ同期の量や失われるデータの量を減らすことができます。 注: 新しいバージョンの redis.conf ファイルのパラメーターは
min-replicas-to-write 3 min-replicas-max-lag 10になりました。redis での非同期レプリケーションの場合のデータ損失の問題には、これら 2 つのパラメーターも使用できます。
以上がRedisクラスターでのスプリットブレインを防ぐ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。