Docker での Redis の永続ストレージの詳細な説明

Docker での Redis の永続ストレージの詳細な説明

この章では、dockerの下にあるSpring BootプロジェクトでRedisを操作し始めます。

準備:

(1)フォルダを作成する:usr/local/work/share

(2)jarパッケージ化されたプロジェクトをプルする

(3)解凍したjarパッケージを先ほど作成したフォルダに入れ、docker-compose.ymlというファイルを作成する。

(4)tmpディレクトリにデータフォルダを作成する

(5)docker-compose.ymlファイルに次の内容を記述します。

レディス:
 画像: redis:3
 ポート:
 - 「6379:6379」
 ボリューム:
 - /tmp/データ:/データ
 - ジャワ:
 画像: bolingcavalry/springbootrun:0.0.1
 リンク:
 - redis:redisホスト
 ボリューム:
  - /usr/local/work/share:/usr/Downloads
 ポート:
 - 「8080:8080」
 端末: 真

ここではボリュームについてのみ説明します。簡単に言うと、docker の redis コンテナに保存されたデータがローカル ディレクトリに永続化されます。

公式声明:

Redis ポート 6379 は Redis によって事前構成されており、コンテナからホストに公開されています。docker-compose.yml ファイルでは、ホストから外部に公開されているため、どのノードでも Redis デスクトップ マネージャーにアクセスしてこの Redis インスタンスを管理できます。 それに加えて、Redis 仕様には、このスタックのデプロイメント間でデータが永続化されるようにするいくつかの要素があります。Redis は常にマネージャー上で実行されるため、常に同じファイルシステムが使用されます。Redis はコンテナ内の /data としてホストのファイルシステム内の任意のディレクトリにアクセスし、ここに Redis がデータを保存します。

要約すると、これは、Redis データのホストの物理ファイル システムに「真実のソース」を作成することです。これがないと、Redis はコンテナのファイルシステム上の /data にデータを保存し、コンテナが再デプロイされるとデータがクリアされます。 この信頼できる情報源には、常に同じホストを使用することを保証する Redis サービスへの配置制約と、コンテナーが /data (Redis コンテナー内) として /data (ホスト上) にアクセスできるようにするために作成されるボリュームの 2 つのコンポーネントがあります。特定のホスト上の /data に保存されたファイルは、コンテナーが入れ替わっても保持されるため、継続性が維持されます。

2. コンテナを起動する

上記の内容を docker-compose.yml に書き込んだ後、ファイルがあるディレクトリで docker-compose up -d コマンドを実行して 2 つのコンテナを起動します。次に、docker ps を実行して次のようにコンテナ情報を確認します。

jar パッケージがダウンロードされると、ローカルの /usr/local/work/share ディレクトリに配置されます。このディレクトリはコンテナの /usr/Downloads にマップされるため、コンテナに入った後、このファイルに直接アクセスできます。

3. jarパッケージをデプロイする

実行中の springboot コンテナに入るには、次のコマンドを実行します。

docker exec -it share_java_1 /bin/bash

/usr/Downloads ディレクトリに入ると、次のファイルが表示されます。

redistempletedemo-0.0.1-SNAPSHOT.jar

コンテナを起動するには、次のコマンドを実行します。

java -jar redistempletedemo-0.0.1-SNAPSHOT.jar

起動は成功しました。情報は次のとおりです。

ローカルテスト

埋め込む

http://localhost:8080/set/name/hxy

埋め込む

http://localhost:8080/get/名前

redis コンテナに移動して確認し、次のコマンドを実行して redis コンテナに入ります。

docker exec -it share_redis_1 /bin/bash

redis-cli

コンソールで get name を実行すると、次に示すように、name に対応する値が表示されます。

簡単なテストは成功しました。前述の通り、redis コンテナが閉じられている限りすべてのデータは消えてしまいますが、上記の docker-compose.yml で設定しました。

ボリューム: - /tmp/data:/data

これは、保存したデータがローカルのtmp/dataディレクトリに保存されることを意味します。tmp/dataを開くと、dump.rdbというファイルが見つかります。

ターミナルで開き、コマンド vi dump.rdb を入力すると、保存したデータが表示されます。name:hxy

docker での redis の永続化については以上です。もっと良い方法があれば、ぜひアドバイスをお願いします。お読みいただきありがとうございました。

関連プロジェクト: https://github.com/haoxiaoyong1014/springboot-examples/tree/master/springboot-redis-docker

追加知識: Docker で Redis をインストールし、起動し、パスワードを設定し、永続性を有効にします。

画像をプルする

docker pull redis:5.0

起動してパスワードを設定し、永続性を有効にする

docker run -d --name redis-server -p 6379:6379 redis:5.0 --requirepass "mypassword" --appendonly yes

上記の docker での redis の永続ストレージの詳細な説明は、エディターが皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM をサポートしていただければ幸いです。

以下もご興味があるかもしれません:
  • Redis が高速な理由とは? 高可用性と永続性を実現する方法
  • Redis の 2 つの永続化ソリューションの詳細な説明
  • Linux での Redis の永続性、マスター スレーブ同期、Sentinel の詳細な説明
  • Redisメモリデータの永続性に関する簡単な説明
  • Redis の 2 つの永続化ソリューション、RDB と AOF の詳細な説明
  • Redis の永続性の詳細な説明

<<:  Reactコンポーネントをフルスクリーンにする方法

>>:  HTML の色に関する参考資料

推薦する

Vueはフィルターを使用して日付をフォーマットします

この記事では、フィルターを使用して日付をフォーマットするVueの具体的なコードを参考までに紹介します...

MYSQL 文字列強制変換メソッドの例

序文2 つのテーブル内の同じフィールドの型が異なっていたり、エンコード タイプが異なっていたりするた...

XHTMLにおけるH1タグの位置について

最近、H1 については多くの議論が行われていますが (記事のコンテンツ ページ内)、おおよそ 2 つ...

SQL インジェクション脆弱性プロセスの例と解決策

コード例: パブリッククラスJDBCDemo3 { パブリック静的voiddemo3_1(){ bo...

CSS3+JavaScript を使用したクールな呼吸効果のサンプル コード

CSS3 アニメーションで実現したシンプルでクールな効果。最終的な効果は次のようになります。 ページ...

Linux CentOS 6.5 のアンインストール、tar、および MySQL のインストールチュートリアル

システム提供のMySQLをアンインストールする1. MySQLがシステムにインストールされているかど...

MySQL 圧縮版 zip のインストールに関する問題の解決策

本日、MySQLの圧縮版をインストールする際に問題が発生しました。サービスが起動できず、2、3時間苦...

CSS 複数 3 列適応レイアウト実装の詳細な説明

序文従来のWEBレイアウトに沿うため、すべてヘッダーとフッターモードの左・中央・右レイアウトで書かれ...

ウィンドウとLinuxプロジェクトを展開する際のLinuxファイルパスに問題はありません

長い間ブログを書いていませんでした。先週、プロジェクトをテストしたところ、いくつかのバグが見つかりま...

Docker コンテナに TensorRT をインストールする際の問題

Ubuntu にインストールされているバージョンをアンインストールします。 sudo apt-get...

Redux Toolkit で Redux を簡素化する方法

目次Redux Toolkitが解決する問題何が含まれていますか? Redux Toolkit AP...

LinuxでSVNサーバーを構築する方法

1: SVNをインストールする yum インストール -y サブバージョン2. 倉庫を作る1: 倉庫...

Windows で MySQL 5.7.17 圧縮バージョンをインストールするときに遭遇する落とし穴

まず、Windows 64 ビット用の最新の MySQL 5.7.17 コミュニティ圧縮バージョンを...

MySQL のダウンロードとインストールの詳細グラフィックチュートリアル

1. MySQLデータベースをダウンロードするには、公式Webサイトにアクセスしてください:http...

vue-cropper を使用して vue で写真をトリミングする方法をご存知ですか?

目次1. インストール: 2. 使用方法: 3. 組み込みメソッド: 4. 使用方法:要約する公式サ...