standaloan は Redis スタンドアロン モードとすべてのサービスですが 1 つの Redis サービスに接続されている場合、このモードは運用には適していません。ダウンタイムとメモリの爆発が発生すると、redis に接続されているすべてのサービスのキャッシュ障害が発生し、雪崩が発生する可能性があります。 (推奨:
redis ビデオ チュートリアル ssentinel (センチネル モード)redis-Sentinel (センチネル モード) は、によって公式に推奨されている高可用性です。 Redis (HA) ソリューション。Redis をマスター/スレーブの高可用性ソリューションとして使用する場合、マスターがダウンした場合、Redis 自体 (多くのクライアントを含む) は自動マスター/スレーブ切り替えを実装せず、Redis-sentinel 自体が自動マスター/スレーブ切り替えを実装します。独立して実行されるプロセスではなく、複数のマスター/スレーブ クラスターを監視し、マスターがダウンしていることを検出した後に切り替えることができます。
sentinel Sentinel は次の機能を実装します
(1) 監視: Redis が正常に実行されているかどうかを監視します。
(2) 通知: アプリケーションにエラー メッセージを通知します。
(3) フェイルオーバー: マスターが停止した場合、別のスレーブを選択します。マスターにアップグレードし、マスターとスレーブの関係を更新します。
#(4) 構成プロバイダー: クライアントはセンチネルを通じて Redis アドレスを取得し、フェイルオーバー中にアドレスを更新します。#2、センチネルとスレーブの自動検出 (redis2.8 以降)
Configuration ファイルにはマスター アドレスのみが設定され、スレーブ アドレスとセンチネル アドレスは自動的に検出されます。
(1) センチネル - Redis pub/sub を介してセンチネル間で情報を交換することによって取得されます。
(2) スレーブ - マスターに取得するよう依頼します。
3、sdown、odown、フェイルオーバー
障害検出は通常、ピンポン メカニズムによって行われます。Sentinel では、sdown (主観的オフライン) メカニズムと odown (客観的オフライン) メカニズムが導入されています。その目的は次のとおりです。クラスターの規模が大きい場合、検出はより客観的になります
(1) sdwon—ピンポンは is-master-down-after-milliseced 以内に失敗します (構成可能)。 sdown のスレーブをマスターにアップグレードすることはできません。
(2) odown - 特定の数 (構成可能) を超えるセンチネルは sdown を考慮し、odown はマスターのみをターゲットとします。
(3) フェイルオーバー - ほとんどの監視員はダウンしていると考えています。
redis-cluster (クラスター モード)redis クラスター モードでは、redis の高可用性デプロイメントも実現できます。データ パフォーマンスが向上すると、パフォーマンスは Redis の単一ノードのボトルネックに達します 垂直方向の拡張はマシンによって制限されます 水平方向の拡張はアプリケーションへの影響とデータ移行時のデータ損失のリスクを伴いますこれらの問題点に対応して、#Redis3.0 はクラスター分散クラスター ソリューションを開始しました。単一ノードのメモリ、同時実行性、トラフィックのボトルネックが発生した場合、クラスター ソリューションは負荷分散を実現するために使用されます。クラスター ソリューションは主に次のことを解決します。シャーディング問題、つまり全体 データはルールに従って複数のサブセットに分割され、複数の異なるポイントに格納され、各ノードはデータ全体の独自の部分を担当します。
Redis Cluster は、ハッシュ パーティショニング ルールで仮想スロット パーティショニングを採用しています。仮想スロット パーティショニングでは、ハッシュ スペースを巧みに使用し、分散の良好なハッシュ関数を使用して、すべてのデータを固定範囲内の一連の整数にマッピングします。整数はスロットとして定義されます。 Redis クラスター スロットの範囲は 0 ~ 16383 です。スロットは、クラスター内のデータ管理と移行の基本単位です。 幅広いスロットを使用する主な目的は、データの分割とクラスターの拡張を容易にすることであり、各ノードは特定の数のスロットを担当します。 Redis Cluster は仮想スロット パーティショニングを使用しており、すべてのキーはハッシュ関数に従って 0 ~ 16383 にマッピングされます。計算式は、スロット = CRC16(キー)&16383 です。各実ノードは、スロットの一部と、スロットによってマップされたキー値データを維持する責任を負います。下図は5つのノードで構成されるクラスタを示しており、各ノードは平均約3276個のスロットを担当し、計算式によって対応するノードの対応するスロットにマッピングする処理を示しています。redis クラスター アーキテクチャ図
Redis の詳細については、
redis 入門チュートリアル列に注目してください。
以上が3 つの Redis デプロイメント ソリューションの詳細な図による説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。