Redis のシングルポイント パフォーマンスの制限とデータ バックアップの本質的な必要性により、Redis はマスター スレーブ レプリケーション サービスを提供します。 この記事では、docker compose によるマスター デュアル スレーブ Redis サービスの構築を記録します。 構成解析##################################### レプリケーション ####################################### # [スレーブ] マスターへの接続設定 # slaveof 172.25.0.101 6379 # 【スレーブ】読み取り専用モード# slave-read-only yes # 【スレーブ】パスワード# masterauth <master-password> # [スレーブ] レプリケーション中にクエリに応答することは許可されていますか? ダーティデータが返される可能性があります。# slave-serve-stale-data yes # [スレーブ] マスターに昇格するスレーブの優先度。これはセンチネルモードでのみ有効です。# スレーブ優先度 100 # 【スレーブ】スレーブ自身のIPをマスターに報告 # スレーブアナウンスIP 5.5.5.5 # 【スレーブ】マスターに報告されたスレーブ自身のポート# slave-announce-port 1234 # 【スレーブ】スレーブがマスターにpingを送信する間隔# repl-ping-slave-period 10 # 【マスター/スレーブ】タイムアウト# repl-timeout 60 # [マスター] ディスクレスとは、RDBファイルを最初にディスクに保存せずにソケットに直接書き込むことを意味します repl-diskless-sync no # [マスター] ディスクレスが有効になっている場合、レプリケーションの前に指定された秒数待機し、ウィンドウ期間内により多くのクライアントが接続して並行して送信できるようにします。# repl-diskless-sync-delay 5 # [マスター] Nagleアルゴリズムを有効にするかどうか。これによりトラフィック使用量は減りますが、同期が遅くなります。repl-disable-tcp-nodelay no # [マスター] スレーブが切断された後に完全なレプリケーションを回避するために再接続するために使用されるリングバッファログのサイズ。デフォルト値は1MBです。 # repl-バックログサイズ 1mb # 【マスター】マスターが一定時間スレーブを切断すると、マスターはバックログをクリアします # レプリケーションバックログTTL 3600 # [マスター] スレーブ接続数が指定数より少ない場合、マスターはすべての書き込み操作を拒否します # min-slaves-to-write 3 # [マスター] 遅延が指定された秒数を超えると、マスターはすべての書き込み操作を拒否します # min-slaves-max-lag 10 サービス構築ディレクトリ構造複製/ ├── docker-compose.yml ├── マスター │ ├── データ │ └── redis.conf ├── 奴隷1 │ ├── データ │ └── redis.conf └── 奴隷2 ├── データ └── redis.conf ファイルを作成操作を容易にするためにサブネットが定義されており、ポート 6371 (マスター)、6372、6373 が公開されています。 バージョン: "3" ネットワーク: redis レプリケーション: ドライバー: ブリッジ ipam: 設定: - サブネット: 172.25.0.0/24 サービス: マスター: 画像: redis コンテナ名: redis-master ポート: - 「6371:6379」 ボリューム: - 「./master/redis.conf:/etc/redis.conf」 - 「./master/data:/data」 コマンド: ["redis-server", "/etc/redis.conf"] 再起動: 常に ネットワーク: redis レプリケーション: ipv4_アドレス: 172.25.0.101 スレーブ1: 画像: redis コンテナ名: redis-slave-1 ポート: - 「6372:6379」 ボリューム: - 「./slave1/redis.conf:/etc/redis.conf」 - 「./slave1/data:/data」 コマンド: ["redis-server", "/etc/redis.conf"] 再起動: 常に ネットワーク: redis レプリケーション: ipv4_アドレス: 172.25.0.102 スレーブ2: 画像: redis コンテナ名: redis-slave-2 ポート: - 「6373:6379」 ボリューム: - 「./slave2/redis.conf:/etc/redis.conf」 - 「./slave2/data:/data」 コマンド: ["redis-server", "/etc/redis.conf"] 再起動: 常に ネットワーク: redis レプリケーション: ipv4_アドレス: 172.25.0.103 インスタンス構成マスター: 基本的に設定は必要ありません。最も簡単なのはポートを指定することです。 ポート 6379 保護モードなし repl-ディスクレス同期なし repl-disable-tcp-nodelay なし 奴隷: サブネットが定義されており、ポートの競合がないため、インスタンス構成は一貫性を保つだけで済みます。 ポート 6379 保護モードなし スレーブ 172.25.0.101 6379 スレーブ読み取り専用 はい スレーブサーブ古いデータ はい サービスを開始するocker-compose up -d ドライバー「bridge」を使用してネットワーク「replication_redis-replication」を作成しています redis-slave-1 を作成しています...完了 redis-master を作成しています...完了 redis-slave-2 を作成しています...完了 マスター ログを確認すると、2 つのスレーブからのレプリケーション要求が受け入れられたことがわかります。
スレーブ ログをチェックして、接続確立のプロセス全体を確認します。
テストマスターにログインして、新しいキーを書き込んでみてください。 127.0.0.1:6371> Hello World を設定 わかりました スレーブにログインし、読み取りが可能かどうかを確認します。 127.0.0.1:6372> こんにちは "世界" スレーブは書き込み操作を試みます: 127.0.0.1:6372> hello redis を設定します (エラー) READONLY 読み取り専用レプリカに対しては書き込むことはできません。 これで、docker compose デプロイメントにおけるマスタースレーブレプリケーションの実装に関するこの記事は終了です。docker compose マスタースレーブレプリケーションに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQLの自動増分主キーIDはこのように処理されません
>>: div タグ内の要素の margin-top が無効である場合の解決策
JavaScript ネイティブ コードの記述能力を高め、setTimeout() の使用を強化する...
この記事では、一般的な基本的な Linux コマンドとその使用方法を例を使って説明します。ご参考まで...
独自のWebプロジェクトをtomcatディレクトリの下のwebappsディレクトリに配置します。 R...
状況は以下のとおりです: (PS: 赤いボックスは iframe 領域を表し、灰色の四角形は上記の ...
Win10 のインストール (すでにインストールされている場合はスキップしてください) win10...
目次文字列の長さ: 長さcharAt() charCodeAt()文字列に値が含まれているかどうかを...
この記事は主に、Nginx 7 層負荷分散のいくつかのスケジューリング アルゴリズムを紹介します。こ...
SSL 証明書の使用についてはここでは説明しません。SSL 証明書を導入する必要がある友人は、すでに...
MySQL8.0.22のインストールと設定(超詳細)参考までに、具体的な内容は次のとおりです。みなさ...
目次1. パッケージングツールでのカスタムインポート2. ブラウザとバンドラの共通インポート構文3....
Vue でカスタム パス エイリアスを設定する方法日常の開発では、モジュールやコンポーネントをインポ...
1. はじめにSelenium を使用して Web サイトからデータをスクレイピングしたいのですが、...
序文前回の記事では、JavaScript の 2 つのデータ型、基本型と参照型、および参照型の浅いコ...
目次1. uuid関数を使用して、一意かつ不規則な主キーIDを生成します。 2. idの自動成長1....
MySQL での SQL モードの表示と設定MySQL はさまざまなモードで実行でき、さまざまなシナ...