高可用性 Redis クラスターを実装する方法

(*-*)浩
リリース: 2019-11-29 09:11:21
オリジナル
2645 人が閲覧しました

高可用性 Redis クラスターを実装する方法

Redis 高可用性メカニズムを実装するためのいくつかの方法:

Redis 高可用性メカニズムを確実にするには、Redis のマスター/スレーブ レプリケーションとredis永続化メカニズム、センチネルメカニズム、キープアライブなどのサポート。

マスター/スレーブ レプリケーションの機能: データ バックアップ、読み取り/書き込み分離、分散クラスタリング、高可用性、ダウンタイム フォールト トレランス メカニズムなど。 (推奨学習: Redis ビデオ チュートリアル )

redis マスター/スレーブ レプリケーションの原則

まず、マスター/スレーブ レプリケーションには次の必要があります。注: 複数のマスターと複数のスレーブを持つことができる Mysql や Nginx のマスター/スレーブ レプリケーションとは異なり、redis は 1 つのマスターのみをサポートします。

1. redis のレプリケーション機能は、複数のデータベース間のデータ同期をサポートしています。 1 つはマスター データベース (マスター) で、もう 1 つはスレーブ データベース (スレーブ) です。マスター データベースは読み取りおよび書き込み操作を実行できます。書き込み操作が発生すると、データは自動的にスレーブ データベースに同期されます。スレーブ データベースは通常、読み取り専用で受信します。 マスター データベースから同期されたデータの場合、マスター データベースは複数のスレーブ データベースを持つことができますが、スレーブ データベースは 1 つのマスター データベースのみを持つことができます。

2. Redis のレプリケーション機能は、データベースの読み取りと書き込みを効果的に分離し、サーバーの負荷容量を向上させることができます。マスター データベースは主に書き込み操作を実行し、スレーブ データベースは読み取り操作を担当します。

マスター/スレーブ レプリケーションの完全同期のプロセス: 以下の図を参照してください。

高可用性 Redis クラスターを実装する方法

Redis マスター/スレーブ レプリケーション完全かどうかに基づいて決定できます 完全同期と増分同期に分けられます

Redis の完全レプリケーションは通常、スレーブの初期化フェーズ中に発生します。このとき、スレーブはマスター上のすべてのデータをコピーする必要があります。

完全な同期プロセス:

1: スレーブ データベースが開始すると、同期コマンドがマスター データベースに送信されます。

2:マスター データベースは、同期コマンドに到達すると、バックグラウンドでスナップショットの保存を開始し (RDB 操作を実行し)、キャッシュ領域を使用して後続のすべての書き込み操作を記録します。

3: マスター サーバーのスナップショットが保存すると、redis はスナップショット ファイルをスレーブ データベースに送信します。

4: データベースからスナップショット ファイルを受信した後、古いデータはすべて破棄され、受信したスナップショットがロードされます。

5: マスター サーバーのスナップショットが送信された後、バッファ内の書き込みコマンドのスレーブ サーバーへの送信が開始されます。

6: スレーブ サーバーはスナップショットのロードを完了し、コマンド リクエストの受信を開始し、マスター サーバーのバッファから書き込みコマンドを実行します。

増分同期プロセス:

Redis 増分レプリケーションとは、スレーブの起動時にマスター サーバーで発生する書き込み操作がスレーブ サーバーに同期されるプロセスを指します。初期化後は正常に動作します。

増分レプリケーションのプロセスは、主に、マスター サーバーが書き込みコマンドを実行するたびに、同じ書き込みコマンドをスレーブ サーバーに送信し、スレーブ サーバーが受信した書き込みコマンドを受信して​​実行するというものです。

Redis マスター/スレーブ レプリケーションの完全同期と増分同期の選択:

マスター/スレーブ サーバーが接続されたばかりの場合は、最初に完全同期が実行され、完全同期の後に実行されます。同期が完了したら、増分同期を実行します。もちろん、必要に応じて、スレーブはいつでも完全な同期を開始できます。 Redis の戦略では、何があっても最初に増分同期が試行され、失敗した場合はスレーブ マシンが完全同期を実行する必要があります。

Redis マスター/スレーブ レプリケーションを構成するにはどうすればよいですか?

修改从服务器redis/conf中的redis.conf文件
 
修改IP地址和端口号为主服务器的IP和端口
slaveof 10.211.55.9 6379 
 
masterauth 123456--- 如果主redis服务器配置了密码,则需要配置
ログイン後にコピー

スレーブ サーバーの redis.conf を設定するだけでよく、マスター サーバーの設定は必要ありません。成功したかどうかは、1. まずメインサーバーの redis-cli クライアントにログインし、情報を入力します。

ロールにマスターとスレーブ0がスレーブサーバーのIPを正常に表示できることが示されている場合、マスター/スレーブサービス構成が成功し、マスター/スレーブレプリケーション構成が成功し、読み取り/書き込み分離が成功したことを意味します。信じられない場合は、見て試してみてください。スレーブ サーバーは引き続き書き込み操作を実行できますか? ######答えはいいえだ。サーバーからの読み取り操作のみがあります!

Redis 関連の技術記事の詳細については、

Redis 入門チュートリアル

列にアクセスして学習してください。

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!