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

推薦する

MySQLの水平および垂直テーブルパーティションの説明

前回の記事で、MySQL ステートメントの最適化には限界があると述べました。MySQL ステートメン...

Ubuntu16.04 インストール mysql5.7.22 グラフィックチュートリアル

VMware12.0+Ubuntu16.04+MySQL5.7.22 インストールチュートリアルの詳...

CSS でのナビゲーション バーとドロップダウン メニューの実装

1. CSSナビゲーションバー(1)ナビゲーションバーの機能ナビゲーション バーを使いこなすことは、...

各 Nginx プロセスで開くことができるファイルの最大数を設定する方法

1. システム内で開いているファイルの最大数を確認する #現在のリソース制限設定を表示する ulim...

CSS テキスト装飾 text-decoration と text-emphasis の詳細な説明

CSS では、テキストは私たちが毎日扱う最も一般的なものの 1 つです。テキストの場合、テキストの装...

CSS を使用して三角形を実装する一般的な手法 (複数の方法)

面接の経験によっては、CSS に関する質問がよく見られ、CSS を使用して三角形を描画する方法につい...

phpmyadmin を使用して MySQL 権限を設定する方法

目次ステップ 1: root ユーザーとしてログインします。ステップ 2: 新しいデータ テーブルを...

CSS スタイルをプログラムで処理するためのサンプル コード

プログラム的アプローチの利点1. スタイルの分散を避けるためのグローバルコントロール2. シンプルな...

Win10 MySQLでCSVをエクスポートする2つの方法

Win10 で csv をエクスポートする方法は 2 つあります。1 つ目はツールを使用することです...

MySQLトリガーの使用と理解

目次1. トリガーとは何ですか? 2. トリガーを作成するトリガーを作成するための構文は次のとおりで...

HTML シンプルな Web フォーム作成例の紹介

<input> はユーザー情報を収集するために使用され、終了ステートメントはありません。...

シンプルな広告ウィンドウを実現するjs

この記事では、参考までに、シンプルな広告ウィンドウを実装するためのjsの具体的なコードを紹介します。...

Apache の一般的な仮想ホスト設定方法の分析

1. Apacheサーバーのインストールと設定yum インストール httpd -y systemc...

UDP DUP タイムアウト UPD ポート状態検出コード例

以前、単純な UDP サーバーとクライアントの例を書きましたが、その中で、自分自身をクライアントと見...

優れた Web UI ライブラリ/フレームワーク 10 選

1. ITミルツールキットIT Mill Toolkit は、リッチ Web アプリケーション用のウ...