Docker ケース分析: Redis サービスの構築

Docker ケース分析: Redis サービスの構築

公式の redis イメージを使用してデータベース サービスを構築します。現在の最新バージョンはバージョン 5.0.8 に相当します。データのバックアップと移行を容易にするために、ローカル データ ディレクトリ、構成ディレクトリ、およびログ ディレクトリをマウントします。

1 マウントディレクトリとファイルを作成する

ホスト上に設定ディレクトリ ~/docker/redis/conf、データディレクトリ ~/docker/redis/data、ログディレクトリ ~/docker/redis/log を作成し、設定ディレクトリ内にファイル ~/docker/redis/conf/redis.conf を作成します。設定ファイルの内容は以下のとおりです。

ログファイル /log/redis.log

最終的なディレクトリ構造は次のようになります。

ここに画像の説明を挿入

ここに画像の説明を挿入

2 Redisイメージを取得する

最新の公式バージョンの redis イメージ (現在はバージョン 5.0.8) を使用します。

docker pull redis

3 コンテナを作成して起動する

ローカル構成、データ、およびログ ディレクトリをコンテナーにマウントします。

# --name redis コンテナ名はredisです
# -p 6379:6379 はローカルポート 6379 をコンテナポート 6379 (redis サービスポート) にバインドします
conf:/usr/local/etc/redis/redis.conf -v ~/docker/redis/log/:/log/ -v ~/docker/redis/data:/data -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes

コンテナが起動したら、ローカルの ~/docker/redis/log/redis.log を通じて redis 操作ステータスを確認できます。

ここに画像の説明を挿入

4 Redisの使用法

ローカルの redis-cli クライアントを使用して redis に接続し、キー値 v=1 を追加します。いくつかの操作を実行すると、~/docker/redis/data ディレクトリの appendonly.aof ファイルにはすでに関連するデータ コンテンツが含まれています。

ここに画像の説明を挿入

ここに画像の説明を挿入

5 データ移行の影響のシミュレーション

この時点で redis コンテナを停止し、新しい redis コンテナを起動して同じディレクトリをマウントすると、新しいコンテナ内の redis には以前のコンテナのデータがすでに含まれています。

docker run --name redis1 -p 6379:6379 -v ~/docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -v ~/docker/redis/log/:/log/ -v ~/docker/redis/data:/data -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes

ここに画像の説明を挿入

さらにカスタマイズされた設定が必要な場合は、ローカルの~/docker/redis/conf/redis.confファイルに追加できます。

公式Redisイメージを参照

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker で Redis クラスターを素早く構築する方法の例
  • Dockerを使用してRedisクラスターを構築する方法
  • Docker を使用して MySQL および Redis サービスをデプロイする方法
  • DockerでRedisをデプロイして起動する方法

<<:  IE10以下のimgタグ問題の解決方法

>>:  CSS スティッキーレイアウトを使用してヘッダーを上部に配置する方法

ブログ    

推薦する

vuex ベースのショッピングカート機能の実装

この記事の例では、ショッピングカート機能を実装するためのvuexの具体的なコードを参考までに共有して...

React useMemo と useCallback の使用シナリオ

目次メモを使うコールバックの使用メモを使う親コンポーネントが再レンダリングされると、そのすべての要素...

Linux deb パッケージの解凍、変更、その他の操作方法のコード例

さまざまな理由により、debパッケージ内のさまざまなファイルの内容を直接変更する必要がある場合があり...

ウェブサイトのパフォーマンスを向上させるためのウェブサーバーの改善

<br />このシリーズの最初のセクションでは、Web サイトのパフォーマンスを向上させ...

マスタークラスタに再参加する k8s ノードの実装

1. ノードを削除するkubectl delete node node01を実行します。 2. この...

MySQL データベースの高度なクエリとマルチテーブルクエリ

MySQL マルチテーブルクエリワークシートを追加する -- ユーザーテーブル (ユーザー) テーブ...

VMwareがモジュールディスクを早期に開けない場合の解決策の詳細な説明

VMWare (Virtual Machine ware) は、「仮想 PC」ソフトウェア会社です。...

...

Dockerコンテナにホストディレクトリへの書き込み権限がない場合の解決策

Docker コンテナを適用する場合、多くの場合、ホスト ディレクトリを Docker コンテナにマ...

MySQL マスター/スレーブ データベース同期構成と一般的なエラー

アクセス回数が増えると、時間のかかるデータベース読み取り操作では、データベースへの負荷を軽減するため...

クリック範囲を拡大する入力チェックボックスを実装する方法

XML/HTML コードコンテンツをクリップボードにコピー< div style = &quo...

HTML リスト ボックス、テキスト フィールド、ファイル フィールドのサンプル コード

ドロップダウンボックス、テキストフィールド、ファイルフィールド 上半分はデモンストレーション効果、下...

Vue でのテキストエリア適応高さソリューションの実装

目次隠れた問題適応高さのソリューションまず解決策を提示してください。Vueスタックが必要な学生はvu...

Ubuntu 18.04 に Nvidia グラフィック カード ドライバーをインストールするチュートリアル (画像とテキスト付き)

0. 事前準備BIOS でセキュア ブートを無効にします。無効にしないと、サードパーティ ソースを...