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 の詳細な説明
CSS の開発履歴についてはここでは紹介しません。ブログを書いている理由の 1 つは、フロントエンド...
序文MySQL 8.0.13 では、インデックス スキップ スキャン (インデックス ジャンプ スキ...
目次1. 環境変数$PATH: 2. 環境変数を変更します。 3. bash_profileの目的要...
ご存知のとおり、mailto は Web デザインと制作において非常に実用的な HTML タグです。...
目次概要1. jsの位置づけを明確に理解する2. 明確な学習パス3. 自己規律と粘り強さ4. 練習し...
MySQL 5.7 を使用すると、Web ターミナル経由でデータベースに中国語の文字を書き込むと文字...
Mysql5.7.19バージョンは今年リリースされた新しいバージョンです。最近のMySQLのバージ...
1. 崩壊度が高いドキュメント フローでは、親要素の高さはデフォルトで子要素によって拡張されます。つ...
システム:セントOS7 RPM パッケージ: mysql-コミュニティクライアント-5.7.18-1...
オプションに属性 selected = "selected" を追加すると、それ...
この記事では、3階層ナビゲーションの表示と非表示を実現するためのVueの具体的なコードを例として紹介...
<br />はじめに:このアイデアは、数日前に上級ウェブデザインの次の記事を考えていると...
1. 需要絵が左から右へ無限ループで動く2. コードモバイルデバイスに適用されているため、rem 単...
MySQLインストールチュートリアル、参考までに具体的な内容は次のとおりです。 1. ダウンロードY...
この記事では、参考までにタイマーを実装するためのVueの具体的なコードを紹介します。具体的な内容は次...