redis クラスターとセンチネルの違いは何ですか?
センチネルの役割は、Redis システムの実行ステータスを監視することです。 機能としては以下の 2 つがあります。 (推奨学習: Redis ビデオ チュートリアル )
マスター データベースとスレーブ データベースが正常に実行されているかどうかを監視します。
プライマリ データベースに障害が発生すると、セカンダリ データベースからプライマリ データベースに自動的に変換されます。
センチネルはマスターが死亡したことを発見すると、スレーブからマスターを再選出します。
Sentinel モードは高可用性を重視します
Sentinel システムは複数の Redis サーバー (インスタンス) の管理に使用され、システムは次の 3 つのタスクを実行します:
監視 (モニタリング ): Sentinel はマスター サーバーとスレーブ サーバーが適切に機能しているかどうかを常にチェックします。
通知: 監視対象の Redis サーバーで問題が発生した場合、Sentinel は API を通じて管理者または他のアプリケーションに通知を送信できます。
自動フェイルオーバー: マスター サーバーが正常に動作しない場合、Sentinel は自動フェイルオーバー操作を開始します。障害が発生したマスター サーバーのスレーブ サーバーの 1 つを新しいマスター サーバーにアップグレードし、他のスレーブ サーバーをアップグレードします。障害が発生したマスター サーバーを変更して新しいマスター サーバーをレプリケートします。クライアントが障害が発生したマスター サーバーに接続しようとすると、クラスターは新しいマスター サーバーのアドレスもクライアントに返し、クラスターが新しいマスター サーバーを使用できるようにします。障害が発生したマスターサーバーを置き換えるサーバー。
クライアントは Redis アドレス (特定の IP) を記録するのではなく、Sentinel アドレスを記録するため、Sentinel はすべてのマスターとスレーブを監視するため、Sentinel から直接 Redis アドレスを取得できます。たとえば、フェイルオーバーすると、センチネルの場合、マスターが変更され、クライアントに通知されます。クライアントは誰が本当のマスターであるかをまったく気にする必要はなく、センチネルから通知されたマスターのみを気にします。
Cluster
sentinel を使用した場合でも、各 Redis インスタンスは完全に保存され、各 Redis に保存されている内容は完全なデータであるため、無駄になります。記憶力があり、バレル効果を持っています。メモリの使用を最大限に活用するために、分散ストレージであるクラスターを使用できます。つまり、各 Redis には異なるコンテンツが格納され、合計 16,384 個のスロットが格納されます。 各 Redis にはいくつかのスロットが割り当てられます。hash_slot = crc16(key) mod 16384 を実行して対応するスロットを見つけます。キーは利用可能なキーです。{} がある場合は、{} 内の 1 つを利用可能なキーとして取得します。それ以外の場合は、キー全体が使用可能なキーです
クラスターには少なくとも 3 つのマスターと 3 つのスレーブが必要で、各インスタンスは異なる構成ファイルを使用します。マスターとスレーブを構成する必要はなく、クラスターが自動的に選択します。
cluster は、単一マシン Redis の容量制限の問題を解決し、特定のルールに従ってデータを複数のマシンに分散することです。
#クラスター モードにより同時実行性が向上します。
Redis 関連の技術記事の詳細については、Redis データベースの使用方法のチュートリアル 列にアクセスして学習してください。
以上がRedis クラスターとセンチネルの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。