Redis とのパートナーシップで維持されている Redis Docker 公式イメージ (DOI) を使用すると、開発者は Redis インスタンスをすばやく簡単にコンテナー化できます。クロスプラットフォームのデプロイプロセスが合理化され、ワークフローをサポートしている場合はエッジデバイスでRedisを使用することもできます。
開発者は、 Docker HubからRedis DOIを10億回以上引き出しました。 世界で最も人気のあるキーバリューストアとして、Redisは、リソースに優しいまま、アプリが重要なデータに同時にアクセスできるようにします。 パフォーマンスが高く、インメモリで、ネットワーク化され、耐久性があります。 また、表形式のデータ構造を使用するMySQLやPostgreSQLなどのリレーショナルデータベースとは一線を画しています。 初日から、Redisはオープンソースでもあります。
最後に、Redis クラスターノードは水平方向にスケーラブルであるため、コンテナ化やマルチコンテナ運用に自然に適合します。 Redis Docker 公式イメージを使用して Redis データベースのデプロイをコンテナー化し、高速化する方法を探る方法をご紹介します。
このチュートリアルの内容:
Redis Docker Official Image とは何ですか?
Redis DOI は、Redis Docker コンテナーのビルディング ブロックです。 これは、Dockerとアプリケーションの動作方法を指示する 実行可能ソフトウェアパッケージ です。 ソースコード、依存関係、ライブラリ、ツール、およびアプリケーションをサポートするその他のコアコンポーネントがバンドルされています。 この場合、これらのコンポーネントによって、アプリと Redis データベースの相互作用が決まります。
当社の Redis Docker 公式イメージは、複数の CPU アーキテクチャをサポートしています。 50 を超えるサポートされているタグの品揃えにより、プロジェクトに最適な Redis イメージを選択できます。 また、多層であり、デフォルト設定を使用して実行されます(単にを使用している場合 docker pull
)。 複雑さと基本イメージもタグによって異なります。
とはいえ、必要に応じてRedis公式イメージ Dockerfile
を構成することもできます。 これについては、Redis DOIの使用方法を説明しながら触れます。 始めましょう。
ドッカーでRedisを実行する方法
続行する前に、 Dockerデスクトップをインストールすることをお勧めします。 Desktop は Docker Engine 上に構築されており、Docker CLI、Docker Compose などをパッケージ化しています。 Docker Desktop を実行すると、Docker コマンドを使用できるようになります。 また、Docker ダッシュボード UI を使用してイメージとコンテナーを管理するのにも役立ちます。
クイック プル コマンドを使用する
次に、プロジェクトで使用するために Redis DOI をプルする必要があります。 最も簡単な方法は、Docker Hubの画像ページにアクセスし、コマンドをコピーして docker pull
、ターミナルで実行することです。
出力により、Docker が Redis イメージを正常にプル :latest
したことが確認されます。 Dockerデスクトップに飛び込み、左側のサイドバーから 画像 インターフェイスを開いて、これを確認することもできます。 redis
画像がリストに自動的に表示されます。
また、新しいRedisイメージのサイズが111.14MBであることがわかります。 これは多くの画像に比べてかなり軽量です。 ただし、のような redis:alpine3.16
高山の亜種を使用すると 、画像がさらにスリムになります。
Docker Desktop について理解したところで、次は CLI ワークフローに進み、Redis を起動して実行してみましょう。
Redis インスタンスを起動する
Redisはサーバーとして機能し、関連するサーバープロセスがその機能を強化します。 Redisインスタンスまたはソフトウェアサーバープロセスをアプリケーションにリンクする前に、開始する必要があります。 さいわい、1 つのコマンドで実行中のインスタンスを作成できます。
docker run --name some-redis -d redis
コンテナーに名前を付けることをお勧めします。 これは、後で参照するのに役立ちます。 また、それに関連する追加のコマンドの実行も簡単になります。 コンテナは、停止するまで実行されます。
このコマンドを追加する -d redis
と、Docker は Redis サービスを "デタッチ" モードで実行します。 したがって、Redis はバックグラウンドで実行されます。 コンテナは、ルートプロセスが終了すると自動的に終了します。 このコマンド内でサービスに "start" を明示的に指示していないことがわかります。 この言い回しを省略することで、Redisサービスが開始され、実行が継続され、アプリケーションで引き続き使用できます。
Redis 永続ストレージをセットアップする
永続ストレージは、アプリケーションで実行間でデータを保存する場合に重要です。 RedisにSSDなどの宛先にデータを書き込ませることができます。 永続化は、再起動後もログ ファイルを保持する場合にも役立ちます。
すべての Redis 操作は、Redis データベース (RDB) メソッドを使用してキャプチャできます。 これにより、スナップショット間隔を指定し、特定の時点でデータを記録できます。 ただし、最初の docker run
コマンドから実行中のコンテナーはポート 6379 を使用しています。 この例では重要ではないため、先に進む前にこのコンテナーを削除 (または停止) する必要があります。
これが完了すると、このコマンドは 60 秒ごとに永続ストレージ スナップショットをトリガーします。
docker run --name some-redis -d redis redis-server --save 60 1 --loglevel warning
RDB アプローチは、"設定して忘れる" 永続性を可能にするため、価値があります。 また、より多くのログが生成されます。 ログ記録はトラブルシューティングに役立ちますが、時間の経過に伴う累積を監視する必要もあります。
ただし、永続化を完全に放棄することも、別のオプションを選択することもできます。 詳細については、 Redis のドキュメントを参照してください。
Redis は、永続化されたデータをその VOLUME /data
場所に保存します。 これらの接続されたボリュームは、コンテナー間で共有できます。 この共有可能性は、Redis が 1 つのコンテナー内に存在し、アプリケーションが別のコンテナーを占有している場合に役立ちます。
Redis CLI を使用して接続する
Redis CLI を使用すると、実行中の Redis コンテナー内でコマンドを直接実行できます。 ただし、これはDockerを介して自動的に可能になるわけではありません。 次のコマンドを入力して、この機能を有効にします。
docker network create some-network
docker run -it --network some-network --rm redis redis-cli -h some-redis
Redis サービスは Redis CLI コマンドを認識します。 さまざまなCLIモードと同様に、多数のコマンドがサポートされています。 詳細については、 Redis CLI のドキュメント を参照してください。
CLI 機能を起動して実行すると、Redisをより直接的に活用できるようになります。
構成とモジュール
最後に、カスタマイズに到達しました。 デフォルトを使用してRedisを利用したアプリを実行できますが、既存の redis.conf
ファイルを取得するように微調整 Dockerfile
できます。これにより、運用アプリケーションのサポートが向上します。 Redis はこれらのファイルがなくても正常に起動できますが、サービスを構成する上で中心的な役割を果たします。
ファイルがどのように見えるか redis.conf
は、 GitHub で確認できます。 それ以外の場合は、ここにサンプル Dockerfile
があります:
FROM redis COPY redis.conf /usr/local/etc/redis/redis.conf CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
これを実現するためにも使用できます docker run
。 ただし、このメソッドを正しく機能させるには、最初に 2 つのことを行う必要があります。 まず、ホストマシン上にディレクトリを作成します /myredis/config
。 これは、構成ファイルが格納される場所です。
次に、Dockerデスクトップを開き、右上の[設定]歯車をクリックします。 「 リソース」>「ファイル共有 」を選択して、ディレクトリのリストを表示します。 下部にグレー表示されたディレクトリエントリが表示されますが、これは名前付きディレクトリの入力フィールドです。 /myredis/config
そこに入力し、「+」ボタンを押してファイルパスをローカルで確認します。
これで、コマンドを実行する準備が整いました。
docker run -v /myredis/conf:/usr/local/etc/redis --name myredis redis redis-server /usr/local/etc/redis/redis.conf
これにより Dockerfile
、画像の構造をより細かく制御できます。 または、CLI オプションを使用すると Dockerfile
、. あなたのニーズがより基本的であるならば、これはより親しみやすいかもしれません。 マップされたディレクトリが書き込み可能であり、ローカルに存在することを確認してください。
また、次の点も考慮してください。
- Redis 設定をその場で編集する場合は、 を使用して
CONFIG REWRITE
、次回の実行時にフィールドの変更を自動的に識別して適用する必要があります。 - 構成の変更を手動で適用することもできます。
以前に Redis CLI を接続した方法を覚えていますか? Redis CLI (テストに最適) を介して引数を直接渡し、データベースサーバーの実行中に設定を編集できるようになりました。
Redisモジュールの使用に関する注意事項
Redis モジュールを使用すると、Redis サービスを拡張し、新しいサービスを構築し、パフォーマンスを低下させることなくデータベースを適応させることができます。 Redis はメモリ内でもそれらを処理します。 これらの標準モジュールは、クエリ、検索、JSON 処理、フィルター処理などをサポートします。 その結果、Docker Hub のイメージには redislabs/redismod
、次の 7 つの公式モジュールがバンドルされています。
- レディスブルーム
- リディスタイムシリーズ
- RedisJSON
- リディスAI
- リディスグラフ
- レディスギアス
- レディサーチ
このコンテナを起動して実験したい場合は、ターミナルに入力 docker run -d -p 6379:6379 redislabs/redismod
するだけです。 Dockerデスクトップを開いて、前に行ったようにこのコンテナを表示できます。
Redis のキュレーションされた モジュールを表示するか、 Redis モジュール ハブ にアクセスしてさらに詳しく調べることができます。
今すぐRedisを使い始めましょう
Redis を正常に Dockerize する方法について説明しました。 さらに進んで、外部構成を取得して、Redisの動作をその場で変更するのは簡単です。 これにより、Redis がアプリケーションと対話する方法の制御がはるかに簡単になります。 Docker Hub にアクセスして、最初の Redis Docker 公式イメージを プルして実験を開始してください。
Redis Stack は、Docker 内で Redis を拡張するのにも役立ちます。 最新の開発者フレンドリーなデータモデルと処理エンジンを追加します。 また、Stack を使用すると、フルテキスト検索、ドキュメント ストア、グラフ、時系列、および確率的データ構造に簡単にアクセスできます。 Redis は、Docker 検証済み発行元 (DVP) プログラムを通じて関連する コンテナー イメージ を公開しています。 それらをチェックしてください!