序文以前学んだ 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のどのフィールドがインデックスに適しているかについての簡単な説明
1.マージンとは何ですか?マージンは、要素の周囲のスペースの間隔を制御するために使用され、視覚的にス...
この記事では、スキン変更効果を実現するためのJavaScriptの具体的なコードを参考までに紹介しま...
目次1. バックグラウンドで実行されるジョブ2. 信号を使用してプロセスを制御する基本的なプロセス管...
商品を検索するときに、すべてのブランドまたは一部のブランドを表示するTaobaoの機能を真似してみま...
CentOS8.0-1905 のリリース後、FTP サーバーを CentOS の新しいバージョンに移...
MySQL エスケープエスケープとは、エスケープ文字の本来の意味を意味します。エスケープ文字の目的は...
1. ストレージエンジン前のセクションでは、SQL 実行プランは、エグゼキュータ コンポーネントがス...
SSDストレージを有効にしたMySQLインスタンスの詳細な説明特に OS と MySQL が同じディ...
ダウンロードアドレス: https://dev.mysql.com/downloads/mysql/...
目次複数の変数を同時に宣言する場合は、1 行に短縮できます。分割代入は複数の変数に同時に値を割り当て...
環境: 1 CentOS Linux リリース 7.5.1804 (コア)ファイアウォールと sel...
最近、Linux を使用してローカルにログインしていたところ、正常にログインできず、次のエラー メッ...
コアはmysqldumpとランタイムです操作は実際にはそれほど難しくありません。バックアップ操作を実...
1. 環境VS 2019 16.9.0 プレビュー 1.0 .NET SDK 5.0.100 2. ...
Centos7 上で openresty 用の Dockerfile を作成し、ビルドしました。 d...