目次
1. マスター&スレーブとは何ですか?
2.何ができるのでしょうか?
3. 遊び方は?
使用手順:
ホームページ データベース Redis Redis はマスター/スレーブ レプリケーションをどのように実装しますか?

Redis はマスター/スレーブ レプリケーションをどのように実装しますか?

May 29, 2023 pm 02:21 PM
redis

    1. マスター&スレーブとは何ですか?

    これは、マスター/スレーブ レプリケーションと呼ばれるものです。ホスト データが更新されると、構成とポリシーに従って、スタンバイ マシンのマスター/スレーバー メカニズムに自動的に同期されます。マスターは主に書き込み用です。 、スレーブは主に読書用です。

    2.何ができるのでしょうか?

    1. 読み取りと書き込みの分離;

    2. 災害復旧。

    3. 遊び方は?

    1. スレーブ (ライブラリ) は装備されていますが、マスター (ライブラリ) は装備されていません;

    2. スレーブ ライブラリの構成: smileof [メイン ライブラリ IP] [メイン ライブラリ ポート];

    • 補足: redis.conf ファイルを設定しない限り、スレーブはマスターから切断されるたびに再接続する必要があります。

    • タイプ情報のレプリケーションを次のように設定します。 Redis のマスター/スレーブ情報を表示します。

    3. 設定ファイルの詳細を変更します

    #- 複数の redis.conf ファイルをコピーします

    Redis はマスター/スレーブ レプリケーションをどのように実装しますか?

    - ポートを指定します

    Redis はマスター/スレーブ レプリケーションをどのように実装しますか?#-デーモン化を開くはい

    ##-PID ファイル名Redis はマスター/スレーブ レプリケーションをどのように実装しますか?

    #-ログ ファイル名

    Redis はマスター/スレーブ レプリケーションをどのように実装しますか?

    -Dump.rdb 名

    Redis はマスター/スレーブ レプリケーションをどのように実装しますか?

    4. 3 つの一般的なトリック

    Redis はマスター/スレーブ レプリケーションをどのように実装しますか?- 1 つのマスターと 2 つのサーヴァント

    1 つのマスター、2 つのスレーブ。スレーブは読み取りのみ可能ですが書き込みはできません。スレーブがマスターから切断されると、必要なスレーブになります。この場合のみ、以前のマスターとスレーブの関係が確立され、マスターが切断された後もマスター関係はまだ存在しており、マスターを再起動することで復元できます。

    Redis はマスター/スレーブ レプリケーションをどのように実装しますか?- ファイアの引き継ぎ

    前のスレーブは次のスレーブのマスターになることができ、スレーブは他のスレーブからの接続および同期リクエストを受信することもできます。スレーブの場合、スレーブはチェーン内の次のスレーブのマスターとして機能し、マスターの書き込みプレッシャーを効果的に軽減できます。スレーブサーバーがデータ同期のマスターサーバーを途中で変更した場合、古いデータは消去され、最新のマスターサーバーとの同期が再確立されます。

    #-顧客に敵対するRedis はマスター/スレーブ レプリケーションをどのように実装しますか?

    マスターが電話を切ると、スレーブはコマンド「slaveof no one」を入力して、現在の Redis が他のマスター Redis とデータを同期するのを停止し、それをマスター Redis に変えることができます。 。

    4. コピー原則

    1. スレーブが起動してマスターに正常に接続すると、同期コマンドが送信されます;

    2. マスターがコマンドを受信した後、保存プロセスを開始し、同時にデータ セットを変更するために受信したすべてのコマンドを収集します。バックグラウンド プロセスが実行された後、マスターはデータ ファイル全体をスレーブに転送して、完全な同期を完了します。

    3完全レプリケーション: スレーブ サービスはデータベース内にあります ファイル データが保存された後、保存され、メモリにロードされます;

    4. 増分コピー: マスターは、新しく収集されたすべての変更コマンドを順番にスレーブに渡し続けます。完全同期;

    5. ただし、マスターが再接続されている限り、完全同期 (完全レプリケーション) が自動的に実行されます。

    5. センチネルモード (sentinel)

    マスターデータベースの障害をバックグラウンドで監視し、障害が発生した場合にはスレーブデータベースを自動で監視する顧客志向の自動バージョンです。投票数に基づいてマスターデータベースに変換されます。センチネルのグループは複数のマスターを同時に監視できます。

    使用手順:

    1. マスターの対応する redis.conf と同じディレクトリに新しい Sentinel.conf ファイルを作成します。名前は間違ってはいけません。

    2 、センチネルを設定し、sentinel.conf ファイルに内容を入力します。

    センチネル モニターの監視対象データベース名 (自分で名前を付けます) ip ポート 1

    • 説明: 上記の最後の数字 1 は、ホストが電話を切った後、誰がホストを引き継ぐかをスレーブが投票することを意味します。スレーブは、投票数を取得した後にホストになります。 。

    • 3. センチネル モードの開始:

    コマンド入力: redis-sentinel /myredis/sentinel.conf

    • 注: 上記の Sentinel.conf パスは、実際の条件に従って構成されています

    • 6. レプリケーションの欠点

      すべての書き込み操作が実行されるため、遅延が発生します。操作はマスターで実行されてからスレーブに同期されるため、マスターからスレーブ マシンへの同期にはある程度の遅延が発生します。システムが非常にビジーな場合、遅延の問題はさらに深刻になります。スレーブ マシンもこの問題をさらに深刻にします。
    Redis マスター、スレーブ ノードのデプロイの詳細

    1. 2 つの redis.conf ファイル (マスター 1 つとスレーブ 1 つ) を作成します

    redis_6379.conf
    redis_6380.conf
    ログイン後にコピー

    2. マスター conf のメイン構成

    bind 127.0.0.1
    port 6379
    protected-mode yes
    daemonize yes
    pidfile /var/run/redis_6379.pid
    logfile "/Data/apps/redis-3.2.12/logs/redis_6379.log"
    dbfilename dump_6379.rdb
    dir /Data/apps/redis-3.2.12/workplace
    requirepass paopao
    ログイン後にコピー

    3. スレーブ構成のメイン設定

    bind 127.0.0.1
    port 6380
    protected-mode yes
    daemonize yes
    pidfile /var/run/redis_6380.pid
    logfile "/Data/apps/redis-3.2.12/logs/redis_6380.log"
    dbfilename dump_6380.rdb
    dir /Data/apps/redis-3.2.12/workplace
    slaveof 127.0.0.1 6379
    masterauth paopao
    ログイン後にコピー

    4. マスター/スレーブ redis-server プロセスを開始します

    redis-server /Data/apps/redis-3.2.12/conf/redis_6379.conf
    redis-server /Data/apps/redis-3.2.12/conf/redis_6380.conf
    ログイン後にコピー

    5. その他の関連する設定

    # 当从库同主机失去连接或者复制正在进行,从机库有两种运行方式:
    # 1) 如果slave-serve-stale-data设置为yes(默认设置),从库会继续相应客户端的请求
    # 2) 如果slave-serve-stale-data是指为no,除去INFO和SLAVOF命令之外的任何请求都会返回一个
    #    错误"SYNC with master in progress"
    slave-serve-stale-data yes
    slave-read-only yes
    # 从库会按照一个时间间隔向主库发送PINGs.可以通过repl-ping-slave-period设置这个时间间隔,默认是10秒
    repl-ping-slave-period 10
    # repl-timeout 设置主库批量数据传输时间或者ping回复时间间隔,默认值是60秒
    # 一定要确保repl-timeout大于repl-ping-slave-period
    repl-timeout 60
    # slave节点磁盘慢, 网速快时, 置为yes, master上的rdb文件将以socket方式传输, 跳过磁盘存储
    repl-diskless-sync no
    # 传输前等待秒数, 为了等待更多的slave节点加入
    repl-diskless-sync-delay 5
    # 传输时,是否禁用tcp nodelay
    repl-disable-tcp-nodelay no
    # 复制缓冲区大小
    repl-backlog-size 1mb
    # 复制缓冲区释放周期
    repl-backlog-ttl 3600
    # 为了sentinal模式, 选举master准备, 数值越小, 优先级越高
    slave-priority 100
    # require at least 3 slaves with a lag <= 10 seconds use
    min-slaves-to-write 3
    min-slaves-max-lag 10
    # 可覆盖bind, port 配置, 对外ip port
    slave-announce-ip 5.5.5.5
    slave-announce-port 1234
    ログイン後にコピー

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

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

    ホット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衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

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

    Redisクラスターモードの構築方法 Redisクラスターモードの構築方法 Apr 10, 2025 pm 10:15 PM

    Redisクラスターモードは、シャードを介してRedisインスタンスを複数のサーバーに展開し、スケーラビリティと可用性を向上させます。構造の手順は次のとおりです。異なるポートで奇妙なRedisインスタンスを作成します。 3つのセンチネルインスタンスを作成し、Redisインスタンスを監視し、フェールオーバーを監視します。 Sentinel構成ファイルを構成し、Redisインスタンス情報とフェールオーバー設定の監視を追加します。 Redisインスタンス構成ファイルを構成し、クラスターモードを有効にし、クラスター情報ファイルパスを指定します。各Redisインスタンスの情報を含むnodes.confファイルを作成します。クラスターを起動し、CREATEコマンドを実行してクラスターを作成し、レプリカの数を指定します。クラスターにログインしてクラスター情報コマンドを実行して、クラスターステータスを確認します。作る

    Redisデータをクリアする方法 Redisデータをクリアする方法 Apr 10, 2025 pm 10:06 PM

    Redisデータをクリアする方法:Flushallコマンドを使用して、すべての重要な値をクリアします。 FlushDBコマンドを使用して、現在選択されているデータベースのキー値をクリアします。 [選択]を使用してデータベースを切り替え、FlushDBを使用して複数のデータベースをクリアします。 DELコマンドを使用して、特定のキーを削除します。 Redis-CLIツールを使用してデータをクリアします。

    Redisコマンドの使用方法 Redisコマンドの使用方法 Apr 10, 2025 pm 08:45 PM

    Redis指令を使用するには、次の手順が必要です。Redisクライアントを開きます。コマンド(動詞キー値)を入力します。必要なパラメーターを提供します(指示ごとに異なります)。 Enterを押してコマンドを実行します。 Redisは、操作の結果を示す応答を返します(通常はOKまたは-ERR)。

    Redisロックの使用方法 Redisロックの使用方法 Apr 10, 2025 pm 08:39 PM

    Redisを使用して操作をロックするには、setnxコマンドを介してロックを取得し、有効期限を設定するために有効期限コマンドを使用する必要があります。特定の手順は次のとおりです。(1)SETNXコマンドを使用して、キー価値ペアを設定しようとします。 (2)expireコマンドを使用して、ロックの有効期限を設定します。 (3)Delコマンドを使用して、ロックが不要になったときにロックを削除します。

    Redisキューの読み方 Redisキューの読み方 Apr 10, 2025 pm 10:12 PM

    Redisのキューを読むには、キュー名を取得し、LPOPコマンドを使用して要素を読み、空のキューを処理する必要があります。特定の手順は次のとおりです。キュー名を取得します:「キュー:キュー」などの「キュー:」のプレフィックスで名前を付けます。 LPOPコマンドを使用します。キューのヘッドから要素を排出し、LPOP Queue:My-Queueなどの値を返します。空のキューの処理:キューが空の場合、LPOPはnilを返し、要素を読む前にキューが存在するかどうかを確認できます。

    基礎となるRedisを実装する方法 基礎となるRedisを実装する方法 Apr 10, 2025 pm 07:21 PM

    Redisはハッシュテーブルを使用してデータを保存し、文字列、リスト、ハッシュテーブル、コレクション、注文コレクションなどのデータ構造をサポートします。 Redisは、スナップショット(RDB)を介してデータを維持し、書き込み専用(AOF)メカニズムを追加します。 Redisは、マスタースレーブレプリケーションを使用して、データの可用性を向上させます。 Redisは、シングルスレッドイベントループを使用して接続とコマンドを処理して、データの原子性と一貫性を確保します。 Redisは、キーの有効期限を設定し、怠zyな削除メカニズムを使用して有効期限キーを削除します。

    Redisのソースコードを読み取る方法 Redisのソースコードを読み取る方法 Apr 10, 2025 pm 08:27 PM

    Redisソースコードを理解する最良の方法は、段階的に進むことです。Redisの基本に精通してください。開始点として特定のモジュールまたは機能を選択します。モジュールまたは機能のエントリポイントから始めて、行ごとにコードを表示します。関数コールチェーンを介してコードを表示します。 Redisが使用する基礎となるデータ構造に精通してください。 Redisが使用するアルゴリズムを特定します。

    Redis用のメッセージミドルウェアの作成方法 Redis用のメッセージミドルウェアの作成方法 Apr 10, 2025 pm 07:51 PM

    Redisは、メッセージミドルウェアとして、生産消費モデルをサポートし、メッセージを持続し、信頼できる配信を確保できます。メッセージミドルウェアとしてRedisを使用すると、低遅延、信頼性の高いスケーラブルなメッセージングが可能になります。

    See all articles