序文以前学んだ Redis は常に単一のサーバー上で実行され、サーバーに直接デプロイされていました。 Docker を使用すると設定プロセスが簡単になるという話を聞きました 状態3 台のサーバー (セキュリティを確保するには少なくとも 3 台のセンチネルが必要) [Alibaba Cloud で数時間レンタル可能]
Dockerをインストールする以下の命令を1行ずつ実行します。 # 1. コンパイル環境を更新する yum -y install gcc # 2. 上記と同じ yum -y install gcc-c++ # 3. Dockerをインストールする # 3.1 古いバージョンをアンインストールする yum remove docker \ dockerクライアント\ docker-client-最新 \ docker-common \ docker-最新 \ docker-最新-logrotate \ docker-logrotate \ dockerエンジン # 3.2 必要なインストールパッケージをインストールする yum install -y yum-utils # 3.3 ミラーウェアハウスを設定します。より高速な国内ミラーを使用することをお勧めします。yum-config-manager \ --リポジトリを追加\ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 3.4 yum パッケージ インデックスを更新します。この機能は、パッケージをローカルにキャッシュします。yum makecache # 3.5 docker に関連する docker-ce コミュニティバージョンをインストールします yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm # 3.6 インストール yum install docker-ce docker-ce-cli containerd.io # 3.7 Dockerを起動する systemctl ドッカーを起動する # 3.8 バックグラウンドで起動するように設定する systemctl enable docker # 3.9 dockerバージョンを使用して成功したかどうかを確認します # 3.10 テスト(オプション) docker で hello-world を実行する # 3.11 アンインストールと削除(参考のため、今回は実行していません) yum 削除 docker-ce docker-ce-cli containerd.io rm -rf /var/lib/docker # 4. アクセラレータを構成する sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "レジストリミラー": ["https://qdxc3615.mirror.aliyuncs.com"] } 終了 sudo systemctlデーモンリロード sudo systemctl dockerを再起動します Redisのマスターノードとスレーブノードを構成する使用するサーバーはサーバー 1 とサーバー 3 です (元々はマスターが 1 つ、スレーブが 2 つありましたが、サーバー 2 をシャットダウンしました)。 ヒント: xshell の場合、送信キーを右クリックして選択すると、すべてのセッションに入力できるため、2 回設定する必要はありません。または、scp ステートメントを使用して、構成されたファイルを他のサーバーと共有します。 # scp ローカルファイル リモートユーザー名@リモートIP:リモートフォルダ scp redis.conf ルート@58.131.71.196:/blue/redis02 1. まず、フォルダーを作成します。ホーム パスに配置しないように注意してください。そうしないと、アクセス許可の問題によりコンテナーの実行に失敗する可能性があります。私が作成したディレクトリは /blue/redis02 で、手順は比較的簡単です。 CD / mkdir 青 && cd 青 mkdir redis02 && cd redis02 2. 必要な環境をロードするために使用する Dockerfile を作成します。 vi Dockerファイル # Dockerfile の内容は次のとおりです。 # ベースイメージ redis から継承する FROM redis メンテナー blue<[email protected]> # Dockerfile があるディレクトリ内のファイルをコンテナの /usr/local/etc/redis ディレクトリにコピーします。 COPY redis.conf /usr/local/etc/redis/redis.conf # いくつかの環境をインストールする RUN apt-get update apt-get install -y vimを実行します。 apt-get install procps --assume-yesを実行します。 ボリューム ["/data"] ワークディレクトリ /etc/redis # ポート7000を開く エクスポーズ7000 # 設定ファイル [ "redis-server", "/usr/local/etc/redis/redis.conf"] を使用して CMD を起動します 3. 公式サイトから redis.conf をダウンロードし、次の変更を加えます。 redis.conf には、いくつかの redis 設定が含まれています。これは基本的に、マスター 1 台、スレーブ 1 台、センチネル 3 台を持つ単一マシンの redis 設定と同じです。 # bind 127.0.0.1 をコメントアウトする # 127.0.0.1 をバインド ポート 7000 # ここで「はい」の場合、デーモンを起動するための設定ファイルの使用に影響します。 pidファイル /var/run/redis_7000.pid # 次の 2 つのパスワードを設定する必要があります。パスワードは一貫している必要があります。 requirepass testmaster123 マスター認証テストマスター123 # 保護モードを変更します。これが yes の場合、外部サーバーにアクセスできなくなります。protected-mode no # サーバー 3 については、サーバー 1 のスレーブ サーバーであることを示す文を追加する必要があります # slaveof host.machine.IP port slaveof 8.131.78.18 7000 4. 上記の設定を保存したら、次のステートメントを使用してイメージを作成できます。このプロセスには長い時間がかかるため、しばらく待つ必要があります。 # docker build -t myredis を使用する必要があります。これはより認識しやすいですが、テストしたときに成功したため、変更したくありません。この文は、Dockerfile に基づいて新しいイメージを作成します。次回直接プルできるように、倉庫にプッシュすることができます。 docker build -t テスト。 5. 次のステートメントを使用してコンテナを起動します。 # コンテナを起動します docker run -d -p 7000:7000 --name redis-test test # 次の文は実行中のコンテナを表示します docker ps #コンテナに入る docker exec -it redis-test /bin/bash 6. コンテナ内で次のステートメントを使用して、実行中のスレッドを表示できます。 # 実行中のスレッドを表示する ps -ef # redisクライアントを使用してポート7000にアクセスします redis-cli -p 7000 # パスワードを入力してください auth testmaster123 # 情報の表示情報レプリケーション # 以下はノードから返される情報です # レプリケーション 役割:スレーブ マスターホスト:8.131.78.18 マスターポート:7000 マスターリンクステータス:アップ マスター_最終_io_秒数_前:10 マスター同期進行中:0 スレーブ_repl_オフセット:28 スレーブ優先度:100 スレーブ読み取り専用:1 接続されたスレーブ:0 マスター返信ID:438c700922a30ebbc66ee5c89a176c426924b2a7 マスター返信ID2:0000000000000000000000000000000000000000000 マスター_repl_オフセット:28 秒_repl_offset:-1 repl_backlog_active:1 レプリケーションバックログサイズ:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:28 この時点で、マスター ノードとスレーブ ノードは正常に構成されています。 これで、Docker 構成 redis センチネル モード (複数サーバー) に関するこの記事は終了です。Docker 構成 redis センチネル モードの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: MySQLのどのフィールドがインデックスに適しているかについての簡単な説明
MySQL 8 の公式バージョン 8.0.11 がリリースされました。公式発表によると、MySQL ...
pingスキャンをオフにする(役に立たないが)まずルートに切り替えるエコー 1 > /proc...
日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...
序文私自身の個人ブログを入力しているときに、ブログの詳細ページでさまざまなコンテンツをコピーするさま...
目次1. オプションの連鎖2. NULL値の結合3. 再帰型エイリアス4. アサーション署名5. P...
運用保守エンジニアは、初期段階では非常に大変な仕事です。この期間中、コンピューターの修理、ネットワー...
最近、インターネットで「Build your own React」という記事を見ました。著者は、シン...
目次1. 基本概念酸3.自動コミット4. トランザクション分離レベル5. 同時実行の一貫性の問題6....
最近 Django を導入しましたが、MySQL を手動でインストールしたくなかったので、Docke...
Linux では、cat、more、less の各コマンドを使用してファイルの内容を表示できます。c...
Elasticsearchは現在非常に人気があり、多くの企業が利用しているため、esを知らないと軽蔑...
目次1. 制約の概念と分類2. 5つの制約の追加と削除2.1 制約を追加する6つの方法2.2 制約を...
この記事の例では、計算機機能を実装するためのミニプログラムの具体的なコードを参考までに共有しています...
Docker の基本的な手順:アップデートパッケージ yum -y アップデートDocker仮想マシ...
mysql は大文字と小文字を区別しないように設定されていますウィンドウズmysqlがインストールさ...