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 の色に関する参考資料

推薦する

証明書を使用してリモート Docker サーバーに接続する方法

目次1. スクリプトを使用してDockerのTLSを暗号化する2. Dockerの設定を変更してリモ...

vue-cli で stimulsoft.reports.js を使用する詳細なチュートリアル

vue-cli は stimulsoft.reports.js を使用します (ナニーレベルのチュー...

Vue コンポーネント (Vuex を含む) 間の値の転送に関する簡単な説明

目次父から息子へ:息子から父へ: Vuex を使用せずにコンポーネント間で値を渡す方法は、親から子、...

Linux bash: ./xxx: バイナリ ファイルを実行できません エラー

今日、Ubuntu 用の小さなツールを顧客に送りましたが、ユーザーはそれを受け取った後、実行できませ...

MySQL 8.0.17 をインストールしてリモート アクセスを構成する方法

1. インストール前の準備データベースのバージョンを確認するコマンド: mysql --versio...

将来的に人気のあるウェブサイトのナビゲーションの方向

<br />今は情報爆発の時代であるだけでなく、サービス爆発の時代でもあります。それはす...

Vueカスタムv-has命令、ボタン権限判定の手順

目次アプリケーションシナリオ簡単に言えば、カスタム指示基本概念グローバルカスタマイズローカルカスタマ...

CSS でのシングル div 描画テクニックの実装

純粋な HTML + CSS を使ってドラえもんの絵を描くなど、CSS 描画に関する記事をよく見かけ...

Vueはカードフリップ効果を実現します

この記事では、カードフリップ効果を実現するためのVueの具体的なコードを例として紹介します。具体的な...

絵文字と問題解決のためのMySQL/Javaサーバーサポートの詳細な説明

この記事では、絵文字用の MySQL Java サーバーのサポートと問題解決方法について説明します。...

Dockerの急速な拡張の高度な方法

1. コマンド方式作成された Swarm クラスターで nginx サービスを実行し、--repli...

Linux サーバーでフォルダー、ファイル、解凍コマンドを削除する方法

1. フォルダを削除する例: rm -rf /usr/java /usr/javaディレクトリとその...

メタビューポートタグ(モバイルブラウジングズームコントロール)の使用方法

OP が現在のファームウェアで Web ページを開くと、常に 50% にズームアウトされてから表示さ...

Bootstrapはカルーセルの効果を実現します

この記事では、カルーセルマップの効果を実現するためのBootstrapの具体的なコードを参考までに共...

Vueのカスタムイベントコンテンツ配信の詳細な説明

1. これは理解するのが少し複雑なので、原理を注意深く読んで自分で入力していただければ幸いです。 &...