Redis クラスター モードとは何ですか?またその利点は何ですか?

WBOY
リリース: 2023-05-28 11:44:10
転載
1061 人が閲覧しました

単一マシン モード

単一マシン モードredis は非常に簡単で、単一ノードを起動するだけで済み、インストール プロセスには 5 分もかかりません。

redis-benchmarkQPS を介して単純なコマンドをテストすると、10w 以上に到達できます。これは非常に驚くべきことだと言わざるを得ません。

スタンドアロン モードの問題も非常に明白です。高可用性メカニズムが欠如しています。

redis プロセスが停止した場合、プロセスは基盤となるデータベースにのみ侵入できるため、ビジネスにとって非常に危険です。 redis をデータ ストレージとして使用する場合、状況はさらに深刻になり、データが失われる可能性もあります。

マスター/スレーブ モード

したがって、最も基本的な redis デプロイメントでは、1 つ以上の スレーブ (現在は レプリケーションと呼ばれています) が追加されます。 )。

マスター redis で問題が発生した場合、引き継ぐ スレーブを選択できます。

このモードが従来の MySQL マスター/スレーブ モードと同じであるのは残念です。切り替えるのはさらに面倒で、 などの外部ツールの助けが必要です。 keepalived やその他の支援により、切り替え、導入、メンテナンスの難易度が急上昇しました。

keepalived は、VRRP プロトコルに基づく高可用性ソリューションであり、IP ドリフトを通じて高可用性を実現します。説明からわかるように、ネットワーク管理者の参加が必要ですが、これは軽量の redis とは対照的です。

Sentinel モード

Sentinel モードは、keepalived の関数を置き換える追加のプロセスを使用して、redis プロセスの実行可能性を判断します。セントリー モードでは、マスター ノードがダウンすると、スレーブ ノードがいつでもマスター ノードのバックアップとして復帰できます。

しかし、センチネル モードの最大の問題の 1 つは、センチネルが多すぎることであり、これには少なくとも 3 つのノードが必要です。

When arbitrated redis, n/2 1 ノードは確認のために投票する必要があります。これは分散システム (クォーラム) の一般的な慣例でもあります。 Zookeeper と同様に、奇数のセンチネル ノードを作成するのが非常に適切です。

センチネル モードは、センチネル モニター 設定を通じて複数のクラスターを同時に検出でき、クラスターの数が中程度の場合は比較的簡単に使用できます。

しかし、センチネル モードには多くの隠れた落とし穴があります。センチネルの起動などは、マスター が生きている場合にのみ正常に実行できます。また、redis 設定 いくつかの危険なコマンドをブロックするためにファイル内で RENAME が使用されている場合、Sentinel を起動できません。

クライアントが redis に接続すると、redis のインスタンスに直接接続できなくなります。取得するにはセンチネルからサークルを作成する必要があります。いくつかの変更情報。

クラスター モード

クラスター モードは、ここでは最もエレガントな方法であると言えます。必要なのは、複数のピア redis ノードをデプロイし、クライアント コマンドを使用してそれらをグループ化することだけです。

ip=192.169.0.23
./bin/redis-cli --cluster create  $ip:7001 $ip:7002 $ip:7003 $ip:7004 $ip:7005 $ip:7006 --cluster-replicas 1
ログイン後にコピー

これには多くのノードも必要で、通常は 6 つのノード、3 つのマスターと 3 つのスレーブを使用します。ノードの数が 10 を超えると、コラボレーションの柔軟性が低下するため、単一クラスターのストレージとパフォーマンスの制限にすぐに達します。

クラスター モードのいくつかの欠点は非常に隠されています。そのサーバー ノードは非常に安定していますが、一部のコマンドはパフォーマンスに重大な影響を与えます。たとえば、mgetpipeline などです。実行のためにリクエストを複数のノードに分散してから、それらを集約する必要があります。ノードの数が増えると、パフォーマンスが低下します。

以上がRedis クラスター モードとは何ですか?またその利点は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート