ホームページ  >  記事  >  データベース  >  Redis の高可用性を確保する方法

Redis の高可用性を確保する方法

(*-*)浩
(*-*)浩オリジナル
2019-11-20 14:49:503296ブラウズ

Redis の高可用性を確保する方法

#redis の高可用性: マスター/スレーブ アーキテクチャをデプロイする場合は、センチネルを追加するだけで、インスタンスがあればそれを実現できます。がダウンすると、アクティブとスタンバイの切り替えが自動的に行われます。

Qian Machine (推奨学習: Redis ビデオ チュートリアル )

## マスターとスラムの実装後、サーバーが監視され、 「センチネル」メカニズムは redis2.6 以降に提供されます。名前が示すように、センチネルの意味は、redis システムの実行状態を監視することです。複数のセンチネルを起動して、redis データベースの実行ステータスを監視できます。その主な機能は次の 2 点です:


a. すべてのノードのデータベースが正常に実行されているかどうかを監視します。


b. マスター データベースに障害が発生した場合、投票メカニズムを通じてスレーブ ノードから新しいマスターが自動的に選出され、スレーブ データベースからマスター データベースへの自動切り替えが実現されます。


1 つのマスターと複数のスレーブを持つ Redis システムでは、複数のセンチネルを使用して監視タスクを実行し、システムが十分に堅牢であることを確認できます。このとき、センチネルはマスター データベースとスレーブ データベースを同時に監視するだけでなく、センチネルは相互に監視します。ここでは、少なくとも 3 つのセントリーを配置し、奇数のセントリーを使用することをお勧めします。


Redis の Sentinel システムは、複数の Redis サーバーの管理に使用され、次の 3 つのタスクを実行します:

監視: Sentinel はマスターとスレーブが正常に動作しているかどうかを常にチェックします。

通知:監視対象の Redis に問題がある場合、センチネルは API を通じて管理者または他のアプリケーションに通知を送信できます。

自動フェイルオーバー:マスターが正常に動作しない場合、Sentinel は自動フェイルオーバー操作を開始し、障害が発生したマスターのスレーブの 1 つを新しいマスターとしてアップグレードします。障害が発生したマスターの他のスレーブが新しい​​マスターをコピーするように変更します。クライアントが障害が発生したマスターに接続しようとすると、クラスターは新しいマスターのアドレスもクライアントに返すため、クラスターはマスターを使用して置き換えることができます。失敗したマスター。

Sentinel は分散システム です。アーキテクチャ内で複数の Sentinel プロセスを実行できます。これらのプロセスは、ゴシップ プロトコルを使用して、マスターがオフラインであるかどうかに関する情報を受信し、投票プロトコル (合意) を使用します。

各センチネルは他のセンチネルに報告します。マスターとスレーブは定期的にメッセージを送信して、相手が「生きている」かどうかを確認します。指定された時間 (構成可能) 内に相手方が応答しない場合、相手方は一時的にダウンしていると見なされます (いわゆる「主観的ダウンタイム」)。主観的ダウン、 sdown と呼ばれます)。

「センチネル グループ」のほとんどのセンチネルが、特定のマスターが応答していないことを報告すると、システムはマスターが「完全に死んだ」(つまり、客観的にダウン、目標がダウン、odown と呼ばれる) とみなします)。投票アルゴリズムを使用して、マスターに昇格する残りのスレーブ ノードの 1 つを選択し、関連する構成を自動的に変更します。

Sentinel は別の実行可能ファイル redis -sentinel としてリリースされますが、実際には単なる特別なモードで実行されている Redis サーバー 通常の Redis サーバーを起動するときに --sentinel オプションを指定すると、sentinel を起動できます。

以上がRedis の高可用性を確保する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。