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

推薦する

モバイルレイアウト用の動的REMの実装

ダイナミックレム1. まず、現在の長さの単位を紹介しましょうpx em Mの幅 / 漢字の幅 1em...

vueプロジェクトは特定の領域に透かしを描くことを実現する

この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです...

JavaScriptでページスクロールアニメーションを実装する

目次レイアウトを作成するCSSスタイルを追加するJavaScript で要素を操作する対象要素を取得...

HTML ウェブページハイパーリンクタグ

HTML ウェブ ページのハイパーリンク タグの学習チュートリアル リンク タグの属性 リンクは、ウ...

最小限のルートファイルシステムを構築するためにbusyboxを移植するための詳細な手順

Busybox: 小さなコマンドが詰まったスイスアーミーナイフ。ステップ1: ディレクトリ構造を作成...

MySQL マルチバージョン同時実行制御 MVCC の基本原理の分析

目次1 トランザクションの同時実行で発生する問題1.1 ダーティリード1.2 繰り返し不可能な読み取...

Vue はウェブページの言語切り替えの国際化を実装します

1. 基本的な手順1: yarn add vue-i18nをインストールするこのパスに新しい .js...

dl、dt、dd リスト ラベルの例

dd タグと dt タグはリストに使用されます。通常は <ul><li> タ...

Node.js は、異なるリクエストパスに応じて異なるデータを返します。

目次1. 異なるリクエストパスに応じて異なるデータを返す方法を学びます。 2. 送信データ: データ...

DockerHubイメージリポジトリの使い方の詳しい説明

これまで使用していたイメージはすべて DockerHub パブリック リポジトリから取得していました...

SVN のインストールと基本操作 (グラフィック チュートリアル)

目次1. SVNとは何か2. SVNサーバーとクライアントの取得方法3. SVN ワークフローとアー...

HTMLページ埋め込み動画とJSコントロール切り替え動画例の詳しい説明

まず、ページにビデオを埋め込むための HTML コードは次のとおりです。コードをコピーコードは次のと...

Ubuntu 18.04 での Pycharm インストール チュートリアルの実装

方法1: Pycharmをダウンロードしてインストールするダウンロードアドレス: https://w...

Vue でスロットを使用する方法についての簡単な説明

定義と使用方法:コンポーネントのテンプレートでスロットタグの定義を使用します。デフォルトの表示値は、...

MySQLの一般クエリログとスロークエリログの分析

MySQL のログには、エラー ログ、バイナリ ログ、一般クエリ ログ、スロー クエリ ログなどが含...