1. 背景現在、ゼロトラスト セキュリティ ゲートウェイに取り組んでおり、認証キャッシュ サーバーとして Redis を使用する必要があります。ゲートウェイ サーバーは複数のクラスターに分散されているため、コンピューター ルーム間の認証を毎回実装するのは簡単ではありません。そのため、Redis のマスター スレーブ同期を使用して、プロセスを記録する必要があります。これが、必要な学生の参考になれば幸いです。 2. 操作手順
3. Dockerをインストールするこの記事では主にマスタースレーブ構成を記録するプロセスについて尋ねているので、Redisサービスを構築するために最も単純なdockerメソッドを使用します。dockerをインストールするコマンドは次のとおりです。 curl -sSL https://get.daocloud.io/docker | sh コマンドを実行すると、次の図に示すインターフェースが表示されます。 上の画像では、dockerに関する関連情報がいくつか表示されています。dockerが正常にインストールされているかどうかを確認するには、docker infoコマンドを使用することもできます。実行コマンドは次のとおりです。 docker情報 コマンドを実行すると、返される情報は下図のようになります。 上の画像では、Dockerのバージョン情報が20.10.3となっており、現時点での最新バージョンであることが確認できます。インストールが成功していることが確認できました。 4. 主なサービス構成次に、dockerを使用してRedisサービスをインストールする必要があります。実際には、Redisイメージを直接使用するのは少し異常であることがわかったので、centosイメージを使用してコンテナにRedisをインストールしました。コンテナを実行するコマンドは次のとおりです。 docker run -d -it -p 16379:6379 --name redis_master centos:7 コマンドを実行したら、コンテナに入ります。コンテナに入るコマンドは次のとおりです。 docker exec -it redis_master bash コマンドを実行すると、返される情報は下図のようになります。 上の画像では、コンテナに正常に入ったことがわかります。次に、コンテナにRedisをインストールする必要があります。Redisをインストールするコマンドは次のとおりです。 yum install -y epel-release && yum install -y redis コマンドを実行すると、返される情報は下図のようになります。 上の図からわかるように、Redisがインストールされています。次に、新しいRedisマスターライブラリ設定ファイルを作成する必要があります。実行コマンドは次のとおりです。 vi ~/master.conf 設定ファイルは以下のとおりです。以下の設定ファイルをコピーし、vi編集ウィンドウに貼り付けます。 #0.0.0.0 をバインドします 保護モード はい ポート 6379 TCPバックログ511 unixsocket /tmp/redis_auth.sock unixsocketperm 777 タイムアウト 0 TCP キープアライブ 300 悪魔化する はい 監視付き自動車 pidファイル /var/run/redis_auth.pid ログレベルデバッグ ログファイル /tmp/redis_auth.log データベース 16 保存 "" stop-writes-on-bgsave-error はい rdb圧縮はい rdbchecksum はい dbファイル名 dump.rdb ディレクトリ /var/lib/redis パスワード 123123123 スレーブサーブ古いデータ はい スレーブ読み取り専用 はい repl-ディスクレス同期なし repl-ディスクレス同期遅延 5 repl-disable-tcp-nodelay なし スレーブ優先度 100 追加のみ はい ファイル名「funfe.aof」を追加します 毎秒追加同期 書き換え時にfsyncを追加しない 自動 Aof 書き換え率 100 自動 aof 書き換え最小サイズ 512 MB aof-load-truncated はい lua 時間制限 5000 slowlog-log-slower-than-10000 ログが 10000 より遅い スローログ最大長 128 レイテンシモニターしきい値 0 キースペースイベントを通知する "" ハッシュ最大 ziplist エントリ 512 ハッシュ最大 ziplist 値 64 リストの最大 ziplist サイズ -2 リスト圧縮深度 0 最大整数セットエントリ数 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-スパース最大バイト数 3000 アクティブリハッシュ はい 10ヘルツ aof-rewrite-incremental-fsync はい vi編集ウィンドウに貼り付けると、以下のようになります。 貼り付けて確認したら、:wq! コマンドを使用して保存し、Redis プログラムを起動します。起動コマンドは次のとおりです。 redis-server `/redis.conf 上記の起動コマンドでは、下図に示すように、設定ファイルのパスを指定する必要があります。 上の図では、Redis サービスが開始されていることがわかります。 5. サービス構成から次に、Redisスレーブサーバーを再度起動する必要があります。コンテナを実行するコマンドは次のとおりです。 docker run -d -it -p 26379:6379 --name redis_slave centos:7 上記のコマンドでは、同一ホスト上にあるため、マスターライブラリのポートと競合しないように、ホストポートを26379に設定しました。起動が完了したら、スレーブライブラリコンテナに入ることができます。実行するコマンドは次のとおりです。 docker exec -it redis_slave bash コマンドを実行した後、新しいRedis設定ファイルも作成する必要があります。実行するコマンドは次のとおりです。 vi ~/redis.conf 設定ファイルには、スレーブライブラリの設定コードを追加する必要があります。設定サンプルは次のとおりです。 127.0.0.1 をバインド 保護モード はい ポート 6379 TCPバックログ511 unixsocket /tmp/redis_auth.sock unixsocketperm 777 タイムアウト 0 TCP キープアライブ 300 悪魔化する はい 監視付き自動車 pidファイル /var/run/redis_6379.pid ログレベル通知 ログファイル /tmp/redis.log データベース 16 保存 "" stop-writes-on-bgsave-error はい rdb圧縮はい rdbchecksum はい dbファイル名 dump.rdb ディレクトリ /var/lib/redis 奴隷 172.23.193.148 16379 マスター認証 123123123 スレーブサーブ古いデータ はい スレーブ読み取り専用 はい repl-ディスクレス同期なし repl-ディスクレス同期遅延 5 repl-disable-tcp-nodelay なし スレーブ優先度 100 追加のみ はい ファイル名「funfe.aof」を追加します 毎秒追加同期 書き換え時にfsyncを追加しない 自動 Aof 書き換え率 100 自動 aof 書き換え最小サイズ 512 MB aof-load-truncated はい lua 時間制限 5000 slowlog-log-slower-than-10000 ログが 10000 より遅い スローログ最大長 128 レイテンシモニターしきい値 0 キースペースイベントを通知する "" ハッシュ最大 ziplist エントリ 512 ハッシュ最大 ziplist 値 64 リストの最大 ziplist サイズ -2 リスト圧縮深度 0 最大整数セットエントリ数 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-スパース最大バイト数 3000 アクティブリハッシュ はい 10ヘルツ aof-rewrite-incremental-fsync はい 構成サンプルをコピーすると、ウィンドウは次のようになります。 貼り付けて確認したら、:wq! コマンドを使用して保存し、Redis プログラムを起動します。起動コマンドは次のとおりです。次に、Redis サービスをインストールします。インストールコマンドは次のとおりです。 yum install -y epel-release && yum install -y redis コマンドを実行すると、返される情報は下図のようになります。 上の図では、スレーブライブラリのRedisもインストールされていることがわかります。次に、redis-serverコマンドを使用してスレーブライブラリサーバーを起動します。コマンドは下の図に示されています redis サーバー redis.conf コマンドを実行すると、返される情報は下図のようになります。 上の画像では、Redis が起動していることがわかります。次に、効果を確認します。 6. 結果の検証検証方法は主に、マスター データベースにデータを設定し、スレーブ データベースも同期的に更新されるかどうかを観察することです。 6.1 予備検証ただし、この操作は少し面倒です。まずはスレーブライブラリの起動ログを確認したほうがよいでしょう。起動ログを確認するコマンドは次のとおりです。 /tmp/redis.log を cat します コマンドを実行すると、次の図に示すようにRedisログ情報が返されます。 上図のログ情報から、スレーブライブラリがマスターライブラリの情報をローカルに正常にコピーしたことがわかります。 6.2 同期チェックログは成功を示していますが、マスタースレーブ同期が成功したかどうかは実際の効果に依存します。ここで、マスターサーバーのターミナルウィンドウに戻り、redisコマンドコンソールに入ります。コンソールに入るコマンドは次のとおりです。 redis-cli -a 123123123 コマンドが実行されると、redisコマンド操作を実行できます。ここでは、テストのキーと値のペアを123123に設定しました。設定コマンドは次のとおりです。 セットテスト 123123 コマンドを実行すると、返される情報は下図のようになります。 上の図では、Redisがキーと値のペアが正常に設定されたことを通知していることがわかります。次に、スレーブライブラリのターミナルウィンドウに戻り、Redisコンソールに入り、次のコマンドを実行します。 redis-cli -a 123123123 コマンドを実行した後、keysコマンドを使用して現在のスレーブライブラリのキーと値のペアを表示できます。コマンドは次のとおりです。 コマンドを実行すると、返される情報は下図のようになります。 上の図では、テストデータが正常にコピーされたことがわかります。 これで、Docker を使用した Redis マスタースレーブ レプリケーションに関するこの記事は終了です。Docker Redis マスタースレーブ レプリケーションの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL トランザクション分離レベルと MVCC の詳細な説明
この記事では、トランザクション、インデックス、ロックなどの MySQL の知識ポイントの原理と使用法...
シングルページアプリケーションを開発する場合、特定のルートを入力し、パラメータに基づいてサーバーから...
目次1 Baota Software StoreにDockerをインストールする2 ゴグスイメージを...
Dockerfileの作成expressによって自動的に作成されたディレクトリを例にとると、ディレク...
MySQLユーザー権限を表示する2つの方法を紹介します1. MySQL grantsコマンドを使用す...
目次1. withRouterコンポーネントを使用する2. ルートタグを使用するReactRoute...
昨日、VMware に CentOS7 をインストールしました。Tomcat パッケージを転送するた...
<br />質問:特定のファイルにジャンプするには、HTML でどのように記述すればよい...
目次ユースケースリアクティブAPI関連プロセス反応的なcreateReactiveObjectはレス...
目次一般的な配列メソッドポップ()シフト解除()シフト()スライス()スプライス()配列から重複した...
ページ内にはjs、cssなどの外部ファイルが導入されており、外部ファイルのエンコードが現在のページフ...
nginx パニック問題に関しては、まず nginx の起動プロセス中に、マスター プロセスが構成フ...
目次ERR 1067による殺人事件2番目の問題の原因はsql_modeです3. sql_modeを設...
毎日のjQueryプラグイン - ステップ進捗軸 ステップ進捗軸ツール系のサイトでは入門チュートリア...
この記事の例では、Element+vueを使用して開始と終了の時間制限を実装するための具体的なコード...