ホームページ  >  記事  >  データベース  >  Redis のマスター/スレーブ レプリケーション

Redis のマスター/スレーブ レプリケーション

齐天大圣
齐天大圣オリジナル
2020-05-25 14:08:321289ブラウズ

mysql と同様に、redis もマスター/スレーブ レプリケーションと読み取り/書き込み分離をサポートしており、構成は mysql よりもはるかに簡単です。 Redis のマスター/スレーブ レプリケーションを見てみましょう。

レプリケーションの確立

デフォルトでは、Redis がマスター ノードです。次に、マスター/スレーブ レプリケーションを有効にする方法を説明します。

まず、2 つの Redis サービスを開きます。バインドされたポートと永続ファイルが異なることを除いて、これら 2 つの Redis サービスは同じ構成です。

127.0.0.1:6379> keys *
1) "age"
2) "name"

127.0.0.1:6380> keys *
(empty list or set)

6379 現在 2 つの Redis サービスがあります。 6380 は現在空です。 6379 がマスター ノード、6380 がスレーブ ノードとして、6379 と 6380 の間にマスター/スレーブ関係を確立します。

レプリケーションを確立するには 2 つの方法があります:

  • 6380 の構成ファイルを変更し、構成ファイルに 127.0.0.1 6379 のスレーブを追加してから、redis サービスを再起動します。

  • 動的変更。slaveof 127.0.0.1 6379

127.0.0.1:6380> slaveof 127.0.0.1 6379
OK
127.0.0.1:6380> keys *
1) "name"
2) "age"

と直接入力します。レプリケーションが確立され、6380 データが作成されたことがわかります。 6379 と一致します。

6379 と 6380 でそれぞれ info replication コマンドを実行して、関連情報を確認します。

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:1
……


127.0.0.1:6380> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
……

レプリケーションの切断

レプリケーションの切断操作は非常に簡単で、誰でもないスレーブを実行するだけです。

127.0.0.1:6380> slaveof no one
OK

さらに、マスター ノードを直接切り替えることもできます。たとえば、現在 6380 は 6370 のスレーブ ノードであり、6380 は 6379 のマスター/スレーブ関係を切断し、6381 との新しいレプリケーション関係を確立したいと考えています。次に、6380 は、slaveof 127.0.0.1 6381 を実行するだけで済みます。

ただし、マスターを切断する際には、スレーブノード以前のデータが消去され、新しいマスターノードのデータがコピーされるので注意が必要です。したがって、以前のデータが役に立ち、バックアップされていない場合は、メイン操作を実行できません。

#パスワード検証#マスター ノードが requirepass で構成されている場合、スレーブ ノードは masterauth を設定する必要があります

読み取り専用デフォルトでは、スレーブ ノードは読み取り操作を実行しますが、書き込み操作は実行できません。これは非常に必要なため、スレーブ ノードが書き込み操作を実行すると、マスター ノードとスレーブ ノードの間でデータの不整合が発生します。スレーブノードから書き込みたい場合は、設定項目slave-read-only=noを変更するだけです。

アプリケーション シナリオRedis レプリケーションの一般的なアプリケーション シナリオには、

    次のようなリアルタイム バックアップが含まれます。 data 、通常、この場合、スレーブ ノードは 1 つだけあり、スレーブ ノードは永続性を有効にします。ノードの主なタスクは、データをリアルタイムでバックアップすることです。
  • フェイルオーバー。マスター ノードに障害が発生した場合、スレーブ ノードを使用してシステムの実行を継続できます。
  • 読み取りと書き込みの分離、より適切多数の読み取りが行われるシナリオでは、マスター ノードが書き込み操作を実行し、複数のスレーブ ノードが読み取り操作を実行します。レプリケーションは非同期で実行されるため、スレーブノードからのデータに遅延が発生する可能性があり、開発時には注意が必要です。

以上がRedis のマスター/スレーブ レプリケーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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