検索
ホームページバックエンド開発PHPチュートリアルRedis クラスターの 3 つのモードとは何ですか?

Redis クラスターの 3 つのモードとは何ですか?

Redisクラスターの3つのモード

1.マスタースレーブモード

永続化機能により、Redisはたとえサーバーは再起動されます) データ。永続化によりメモリ内のデータがハードディスクに保存され、再起動によりデータがハードディスクからロードされるためです。

ただし、データはサーバー上に保存されるため、サーバーにハードディスク障害などの問題が発生した場合、データの損失も発生します。単一障害点を回避するために、データベースの複数のコピーを複製し、それらを異なるサーバーに展開するのが一般的です。これにより、1 つのサーバーに障害が発生した場合でも、他のサーバーが引き続きサービスを提供できます。この目的のために、Redis は、あるデータベースのデータが更新されたときに、更新されたデータを他のデータベースに自動的に同期できるレプリケーション機能を提供します。

レプリケーションの概念では、データベースは 2 つのカテゴリに分類され、1 つはマスター データベース (マスター) で、もう 1 つはスレーブ データベース (スレーブ) です。マスター データベースは読み取りおよび書き込み操作を実行でき、書き込み操作によってデータが変更されると、データはスレーブ データベースに自動的に同期されます。スレーブ データベースは通常読み取り専用で、マスター データベースから同期されたデータを受け入れます。マスター データベースには複数のスレーブ データベースを含めることができますが、スレーブ データベースにはマスター データベースを 1 つだけ含めることができます。

マスター/スレーブデータベースの構成

マスターデータベースを構成する必要はありません。redis conf ファイルからスレーブデータベース情報をロードするか、redis-server --port 6380 --slaveof 127.0 を使用できます。起動時は.0.1 6379

スレーブ データベースは通常読み取り専用で、書き込み可能に変更できますが、書き込まれたデータはマスターによって簡単に同期できるため、引き続き読み取り専用にすることができます。

実行時にslaveof ip portコマンドを使用して、元のマスターを停止し、設定したばかりのマスターに切り替えることもできます。slaveofは自分自身をマスターに変えることはありません

データベースから開始する場合、データベースは同期コマンドを送信します。同期を受信すると、マスター データベースはバックグラウンドでスナップショット RDB の保存を開始します。スナップショットが完了すると、マスター データベースはキャッシュされます。スナップショットとキャッシュされたコマンドを一緒にスレーブに送信します。コピーの初期化が終了します。

以降、マスターがコマンドを受信するたびに、同期してスレーブに送信されます。

切断と再接続が発生した場合、2.8 以降のバージョンでは、切断中のコマンドが再接続データベースに渡されます。増分レプリケーション

マスター/スレーブ レプリケーションは、クライアントが書き込み実行をマスターに送信すると、マスターは実行後すぐに結果をクライアントに返し、コマンドを非同期でスレーブに送信するため、パフォーマンスには影響しません。書き込み前に同期するスレーブ マスターの最小数を設定することもできます。

ハードディスクレスのレプリケーション: ハードディスクの効率が低い場合、レプリケーションのパフォーマンスに影響します。2.8 以降では、ハードディスクレスのレプリケーション、repl-diskless-sync を設定できます

2 番目、Sentinel

メイン データベースでサービスの異常な中断が発生した場合、開発者はスレーブ データベースを手動で選択してマスター データベースにアップグレードし、システムがサービスを提供し続けることができます。ただし、プロセス全体は比較的煩雑で手動介入が必要なため、自動化が困難です。 この目的を達成するために、Redis 2.8 は、自動化されたシステム監視および障害回復機能を実装するためのセンチネル ツールを提供します。

センチネルの役割は、redis マスター データベースとスレーブ データベースが正常に実行されているかどうかを監視することです。マスターに障害が発生した場合、スレーブ データベースからマスター データベースに自動的に切り替わります。

例:

1 マスター 2 スレーブ 1 セントリー

redis-server --port 6379

redis-server --port 6380 --slaveof 192.168.0.167 6379

redis-server --port 6381 --slaveof 192.168.0.167 6379

Sentinel 設定ファイル Sentinel.conf

Sentinel Monitor mymaster 192.168.0.167 6379 1

ここでの 1 は 1 つの Sentinel を表します

注:

inel でシステムを監視するには、必要なのはマスター データベースを監視するだけで、Sentinel はマスター データベースを複製するすべてのスレーブ データベースを自動的に検出します。このようにして、Sentinel はマスター 6379 とスレーブ 6380 および 6381 を監視できます。6379 が停止すると、Sentinel は 2 つのうちの 1 つを選択します。優先度に応じて選択します。同じ場合は、ID が小さい方を選択します。再度 6379 が表示されると、それがスレーブとして存在します。

3. クラスター (クラスター有効)

クラスターを使用するには、各データベース ノードのクラスター有効構成をオンにするだけです。適切に機能するには、各クラスターに少なくとも 3 つのマスター データベースが必要です。 Sentinel を使用する場合でも、各 Redis インスタンスは完全に保存され、各 Redis に保存されているコンテンツは完全なデータであるため、メモリが無駄に消費され、バレル効果が発生します。メモリの使用を最大限に活用するために、分散ストレージであるクラスターを使用できます。つまり、各 Redis には異なるコンテンツが保存されます。

クラスターには少なくとも 3 つのマスターと 3 つのスレーブが必要で、各インスタンスは異なる構成ファイルを使用します。マスターとスレーブを構成する必要はなく、クラスターが自動的に選択します。

各インスタンスの構成ファイルを変更します:

cluster-enabled yes -- クラスターを有効化します

cluster-config-file names-6382.conf -- クラスター構成ファイル名、

各インスタンスの構成は次のようにする必要がありますRedis はファイル名に基づいて新しいファイルを自動的に作成します

クラスターの操作

redisインストールディレクトリのsrc実行。/redis-trib.rb create --replicas 1

127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382

127。 0. 0 .1: 6383 127.0.0.1:6384 127.0.0.1:6385

ここでのマスター選挙は動物園の飼育員の選挙と似ています

関連知識の詳細については、PHP 中国語 Web サイトをご覧ください。 !

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

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?Apr 25, 2025 am 12:16 AM

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッション関連の問題をどのようにデバッグしますか?PHPでセッション関連の問題をどのようにデバッグしますか?Apr 25, 2025 am 12:12 AM

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()が複数回呼び出されるとどうなりますか?session_start()が複数回呼び出されるとどうなりますか?Apr 25, 2025 am 12:06 AM

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでセッションのライフタイムをどのように構成しますか?PHPでセッションのライフタイムをどのように構成しますか?Apr 25, 2025 am 12:05 AM

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

セッションを保存するためにデータベースを使用することの利点は何ですか?セッションを保存するためにデータベースを使用することの利点は何ですか?Apr 24, 2025 am 12:16 AM

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでカスタムセッション処理をどのように実装しますか?PHPでカスタムセッション処理をどのように実装しますか?Apr 24, 2025 am 12:16 AM

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

セッションIDとは何ですか?セッションIDとは何ですか?Apr 24, 2025 am 12:13 AM

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

ステートレス環境(APIなど)でセッションをどのように処理しますか?ステートレス環境(APIなど)でセッションをどのように処理しますか?Apr 24, 2025 am 12:12 AM

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境