docker を使用して Redis マスター/スレーブを構築する方法

docker を使用して Redis マスター/スレーブを構築する方法

1. Docker環境を構築する

1. Dockerfileを作成する

Centos:latest から
実行 groupadd -r redis && useradd -r -g redis redis
実行 yum -y update && yum -y install epel-release && yum -y install redis && yum -y install net-tools
エクスポーズ6379

2. イメージを構築する

ビルド -t docker-test を実行します。

3. 現在の画像を表示する

Docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
docker-test 最新 ccebd30e466a 12 分前 396MB
centos 最新 470671670cac 7 週間前 237MB

4. dockerのデフォルトのネットワークタイプを表示する

docker ネットワーク ls
ネットワーク ID 名前 ドライバー スコープ
a43e79987e98 ブリッジ ブリッジ ローカル
6b73067403dc ホスト ホスト ローカル
b8ad4981e57e なし null ローカル

5. カスタムネットワークタイプを作成する

docker ネットワーク作成 --subnet=172.10.0.0/16 haveyb-network

2. Redisマスタースレーブを構築する

1. redis-masterコンテナを作成する

docker run -itd --name redis-master --net haveyb-network -p 6380:6379 --ip 172.10.0.2 docker-test

パラメータの説明:

-i: コンテナを対話モードで実行します。通常は -t と一緒に使用されます。

-t: コンテナの疑似入力端子を再割り当てします。通常は -i と一緒に使用されます。

-d: コンテナをバックグラウンドで実行し、コンテナ ID を返します。

--name: 作成したコンテナに名前を付ける

--net: ネットワーク モードを指定します (ここでは、作成したカスタム ネットワーク モードを指定します)

-p: ポートマッピング、形式: ホストポート: コンテナポート

--ip: コンテナに固定IPを設定する

次に、使用するイメージを指定します(ここでは、作成したイメージ docker-test を使用します)

2. 実行中のコンテナを表示する

ドッカーps -a
コンテナIDイメージコマンドが作成されました
dc9344bbd25f docker-test "/bin/bash" 2分前
 
ステータス ポート名
2分前に起動 0.0.0.0:6380->6379/tcp redis-master

注: 特定のネットワークのコンテナのIPアドレスを表示する

docker ネットワーク検査 haveyb-network

3. redis-slave1 と redis-slave2 コンテナを作成する

docker run -itd --name redis-slave1 --net haveyb-network -p 6381:6379 --ip 172.10.0.3 docker-test
docker run -itd --name redis-slave2 --net haveyb-network -p 6382:6379 --ip 172.10.0.4 docker-test

4. redis-masterコンテナを構成する

(1) redis-masterコンテナに入る

docker exec -it redis-master bash

注: コンテナを終了してください `exit`

(2)redis.conf設定ファイルを変更する

/etc/redis.conf をviで開きます

(3)パラメータbind127.0.0.1を0.0.0.0に変更する

0.0.0.0 をバインド

(4)マスターRedisパスワードを設定する

requirepass パスワード設定

(5)メインのRedisを起動する

redis-server /etc/redis.conf &

(6) redis-cli

redis-cli
パスワード設定を認証する

5. redis-slave1 を設定する

(1) redis-slave1コンテナに入る

docker exec -it redis-slave1 bash

(2)redis.conf設定ファイルを変更する

/etc/redis.conf をviで開きます

(3)パラメータbind127.0.0.1を0.0.0.0に変更する

0.0.0.0 をバインド

(4) masterauthを設定し、次のコードを追加します(マスターRedisがパスワードを設定した後、このパラメータはRedisからの接続を確認するために必要です)

マスター認証パスワード設定

(5)slaveofを設定する(マスターredisのIPとポートを設定する)

スレーブ 172.10.0.2 6379

(5)Redisから起動

redis-server /etc/redis.conf &

(6) Redisクライアント

redis-cli

6. redis-slave2を設定する

redis-slave1と同じ設定

7. redis-cliで「info replication」を実行してマスタースレーブ情報を表示します。

redisマスター

127.0.0.1:6379> 情報レプリケーション
# レプリケーション
役割:マスター
接続スレーブ:2
スレーブ0:ip=172.10.0.3、ポート=6379、状態=オンライン、オフセット=3105、ラグ=1
スレーブ1:ip=172.10.0.4、ポート=6379、状態=オンライン、オフセット=3105、ラグ=1
マスター返信ID:a3a43b1957bc5b9f18cb3004301990085e49b0d1
マスター返信ID2:0000000000000000000000000000000000000000000
マスター_repl_オフセット:3105
秒_repl_offset:-1
repl_backlog_active:1
レプリケーションバックログサイズ:1048576
repl_backlog_first_byte_offset:1
レプリケーションバックログ履歴長:3105
127.0.0.1:6379>

redisスレーブ1

127.0.0.1:6379> 情報レプリケーション 
# レプリケーション
役割:スレーブ
マスターホスト:172.10.0.2
マスターポート:6379
マスターリンクステータス:アップ
マスター_最終_io_秒前: 1
マスター同期進行中:0
スレーブ_repl_オフセット:3203
スレーブ優先度:100
スレーブ読み取り専用:1
接続されたスレーブ:0
マスター返信ID:a3a43b1957bc5b9f18cb3004301990085e49b0d1
マスター返信ID2:0000000000000000000000000000000000000000000
マスター_repl_オフセット:3203
秒_repl_offset:-1
repl_backlog_active:1
レプリケーションバックログサイズ:1048576
repl_backlog_first_byte_offset:1
レプリケーションバックログ履歴長:3203
127.0.0.1:6379>

8. redis-masterにキーを書き込むと、redis-slave1とredis-slave2はすでにそれを取得できます。

これで、docker を使用して redis マスター/スレーブを構築する手順に関するこの記事は終了です。docker を使用して redis マスター/スレーブを構築する方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker ベースの Redis マスタースレーブ クラスタの実装
  • Docker を使用した Redis マスタースレーブレプリケーションの実践の詳細説明
  • Docker を使用して Redis マスター スレーブ レプリケーション クラスターを構築する
  • CentOS 6 は Docker を使用して Redis マスター スレーブ データベース操作例を展開します
  • Docker での Redis のマスタースレーブ構成チュートリアルの詳細説明
  • Docker ベースの Redis マスタースレーブ + センチネルの構築例

<<:  CSS のサイズ単位についての簡単な説明

>>:  フロントエンドJavaScriptのクラス

推薦する

HTML テーブル マークアップ チュートリアル (43): テーブル ヘッダーの VALIGN 属性

垂直方向では、ヘッダーの配置を上、中央、下に設定できます。基本的な構文構文Top は上、Middle...

Vue v-onディレクティブの使用について

目次1. イベントのリスニング2. イベントパラメータを渡す3. イベント修飾子ケース1: クリック...

MYSQL の解凍版における中国語の文字化け問題の解決方法

MYSQLの解凍バージョンがインストールされます1: 解凍後、my.ini ファイルをコピーし、バイ...

MySQL での重複キー更新時の replace into と insert into の使用法と相違点の分析

この記事では、MySQL での重複キー更新時の replace into と insert into...

HTMLページ作成に関する私の経験の簡単な要約

Word of Mouth に入社して 3 ~ 4 か月が経ちました。仕事の中で一番の収穫は、ビジュ...

MySQL トリガー: トリガーの作成と使用

この記事では、例を使用して MySQL トリガーの作成と使用について説明します。ご参考までに、詳細は...

自動同期テーブル構造のMySql開発

開発の問題点開発プロセスでは、データベース フィールドが頻繁に変更されるため、RD 環境と QA 環...

10 種類のモダンなレイアウトを実現するための CSS コード

序文日曜日に自宅で web.dev の 2020 3 日間ライブを視聴したところ、興味深い点がたくさ...

スタートアップ企業が丹念に作り上げた優れたウェブデザイン17選

スタートアップ企業は、型破りな仕事のやり方、ユニークなビジネスモデル、特徴的な製品やサービス、パーソ...

HTML テーブルタグについての簡単な説明

主にその構造といくつかの重要な特性について説明します。少しずつ改善しながら紹介していきます。 1) ...

Ubuntu での mysql のインストールと使用 (一般版)

Ubuntu のバージョンに関係なく、MySQL データベースのインストールは基本的に同じです。具...

CSS フレキシブルレイアウト FLEX、メディアクエリ、モバイルクリックイベントの実装

フレックスレイアウト定義: Flexレイアウトの要素は、 Flex 、または略して「コンテナー」と呼...

マークアップ言語 - アンカー

前: マークアップ言語 - フレーズ要素 オリジナルソース 第 7 章 アンカーHTML のリンクの...

Win7 での mysql5.5 インストール グラフィック チュートリアル

MySQL のインストールは比較的簡単なので、通常は次のステップに直接進み、注意が必要な点に集中する...