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 スティッキーレイアウトを使用してヘッダーを上部に配置する方法

推薦する

Linux にバイナリ MySQL をインストールして MySQL パスワードをクラックする方法

1. システムに必要な libaio ソフトウェアがインストールされていることを確認します。インスト...

HTML におけるブロックコメントの使用に関する詳細な紹介

HTML の一般的なコメント: <!--XXXXXXXX--> (XXXXXXXX はコ...

Docker ビルド PHP 環境チュートリアル詳細説明

Dockerのインストール公式インストールスクリプトを使用して最新バージョンのDockerをインスト...

jsはaudioContextを通じて3Dサウンド効果を実現します

この記事では、audioContextを介して3Dサウンド効果を実現するためのjsの具体的なコードを...

JavaScript parseInt() と Number() の違いのケーススタディ

学習目標: parseInt() と Number() という 2 つの関数は、文字列をデータ型に変...

MYSQL クエリの効率を向上させる 10 の SQL ステートメント最適化テクニック

MySQL データベースの実行効率はプログラムの実行速度に大きな影響を与えます。データベースの効率的...

40 CSS/JSスタイルと機能的な技術処理

1-ドロップダウン選択ボックスのスタイル設定 - ドロップダウン リストを変更します。 2- <...

LinuxベースのApacheウェブサイトサービス構成の詳細な説明

オープンソース ソフトウェアである Apache は、最も広く使用されている Web アプリケーショ...

このリファレンスとJavaScriptのカスタムプロパティの詳細な説明

目次1. このキーワード2. カスタム属性3. 包括的なケース1:タブの実装付録要約する1. このキ...

Vue.js ディレクティブのカスタム命令の詳細な説明

デモコマンドをカスタマイズするVue カスタム ディレクティブの構文は次のとおりです。 Vue.di...

ウェブページを作るときに注意すべき5つのポイント

1. 色合わせの問題<br />Web ページには 3 色以上使用しないでください。そう...

JS ES6 変数分割代入の詳細な説明

目次1. 脱構築とは何か? 2. 配列の分割3. 配列モードと代入モードの統一4. デフォルト値の構...

MySQL ロック制御同時実行方法

目次序文1. 楽観的ロックバージョンフィールドを追加する2. 悲観的ロック読み取りロック完全なテーブ...

MySQLデータベースの基礎知識と操作のまとめ

この記事では、例を使用して、MySQL データベースの基本的な知識と操作について説明します。ご参考ま...

虫眼鏡ケースのJavaScriptオブジェクト指向実装

この記事では、参考までに、虫眼鏡のJavaScriptオブジェクト指向実装の具体的なコードを紹介しま...