Redis#
Lagoon Redis
イメージDockerfile は、公式 redis:alpine
イメージを元にしています。
このDockerfileは、デフォルトでスタンドアロンのRedis エフェメラル サーバーをセットアップするために使用することを意図しています。
サポートされているバージョン#
- 5(互換性のためのみ利用可能、公式にはもはやサポートされていません) -
uselagoon/redis-5
またはuselagoon/redis-5-persistent
- 6 Dockerfile -
uselagoon/redis-6
またはuselagoon/redis-6-persistent
- 7 Dockerfile -
uselagoon/redis-7
またはuselagoon/redis-7-persistent
使用方法#
Redisイメージには2つの異なるバリエーションがあります:エフェメラル と パーシステント。
エフェメラル#
エフェメラルイメージは、アプリケーションのインメモリキャッシュとして使用することを意図しており、コンテナの再起動を越えてデータを保持しません。
インメモリ(RAM)キャッシュとして使用する場合、大きなキャッシュを持っている場合に最初に調整したいかもしれないことは、MAXMEMORY
変数を適応させることです。この変数は、どの程度の最大メモリ(RAM)を制御します。 Redisはキャッシュアイテムの保存に使用します。
永続的#
永続的なRedisイメージは、コンテナの再起動を越えてデータを永続化し、永続性が必要なキューまたはアプリケーションデータに使用できます。
通常、メモリ内キャッシュのシナリオで永続的なRedisを使用することはお勧めしません。これは、Redisコンテナが再起動し、ディスクからデータをロードしているときに、アプリケーションに予期しない副作用をもたらす可能性があるからです。
Lagoonの適応#
このイメージはLagoonで使用するために準備されています。したがって、すでにいくつかのことが行われています:
- フォルダの権限は、
fix-permissions
を使用して自動的に適応されるため、このイメージはランダムなユーザーで動作します。 /etc/redis/*
内のファイルは、コンテナエントリーポイント経由でenvplate
を使用してテンプレート化されます。
含まれる redis.conf
設定ファイル#
このイメージには、Lagoonで動作するように最適化された default Redis設定ファイルが含まれています。
環境変数#
一部のオプションは環境変数を介して設定可能です。
環境変数 | デフォルト | 説明 |
---|---|---|
データベース | -1 | スタートアップ時に作成されるデータベースのデフォルト数。 |
ログレベル | 通知 | ログのレベルを定義します。 |
最大メモリ使用量 | 100mb | メモリの最大使用量。 |
最大メモリポリシー | allkeys-lru | Redisが最大メモリ使用量に達したときにキーを追い出すためのポリシー。 |
REDIS_PASSWORD | 無効 | 認証機能を有効にします。 |
カスタム設定#
ベースイメージに基づいて、カスタム設定を含めることができます。 Redis設定ファイルの完全なドキュメンテーションについては、こちらをご覧ください。
Redis-persistent#
以下に基づいています Lagoonの redis
イメージ、Lagoonの redis-persistent
Dockerイメージは、Redisサービスをpersistent
モード(つまり、キーがディスクに保存される永続化ボリュームで)で利用する場合に使われます。
これはredis
との違いは、FLAVOR
環境変数だけで、それは使用中のredisのバージョンにより、それぞれのRedis設定を使用します。
トラブルシューティング#
LagoonのRedisイメージにはすべてredis-cli
コマンドが事前にロードされており、これによりRedisサービスに情報を問い合わせたり、設定値を動的に設定したりできます。このユーティリティを使用するには、ここの指示に従ってpod
の値としてredis
を使用してRedisポッドにSSH接続し、接続したらターミナルから実行します。
最大メモリポリシー#
デフォルトでは、Lagoonのredis
イメージはallkeys-lru
ポリシーを使用するように設定されています。このポリシーでは、Redisに格納された任意のキーが、もし/ Redisサービスが、最近最も使用されていないキーに基づいてmaxmemory
制限に達した場合。
典型的なインストールでは、これが理想的な設定であり、DrupalがRedisでキャッシュされた各キーにTTL
値を設定しない場合があります。 maxmemory-policy
がvolatile-lru
のように設定されていて、DrupalがこれらのTTL
タグを提供しない場合、これはRedisコンテナが埋まり、いかなるキーも追い出すことが完全にできなくなり、新しいキャッシュキーを全く受け付けなくなる結果となります。
Redisのmaxmemoryポリシーについての詳細情報は、Redisの公式ドキュメンテーションで確認できます。
注意して進めてください
この設定を変更すると、Redisが完全にいっぱいになり、結果として停電を引き起こす可能性があります。
Redisのmaxmemory
値の調整#
Redisに与えるメモリの最適量を見つけるのはかなり難しい作業です。Redisキャッシュのメモリサイズを調整しようとする前に、実際にはできるだけ長い時間、通常通りに稼働させることが賢明です。理想的な最小期間は、少なくとも1日間の典型的な使用です。
これらのメモリ値を調整する際に考慮すべきいくつかの高レベルの事項があります:
- 最初に確認するべきことは 現在Redisが使用しているメモリの割合。
- この割合が
50%
未満の場合は、maxmemory
の値を25%下げることを検討してみてください。 - この割合が
50%
と75%
の間であれば、問題なく稼働しています。 - この値が
75%
を超える場合、他の変数を見てmaxmemory
を増やす必要があるかどうか確認する価値があります。
- この割合が
- Redisのメモリ使用率が高いと判断した場合、次に見るべきはキーの追い出し数です。
- 大量のキー追い出しとメモリ使用率が
95%
を超えると、Redisがmaxmemory
設定を高くする必要があることをかなりよく示しています。 - キーの追い出し数が多くなく、通常の応答時間が妥当であれば、これは単にRedisがその割り当てられたメモリを期待通りに管理していることを示しています。
- 大量のキー追い出しとメモリ使用率が
例のコマンド#
以下のコマンドは、Redisサービスに関する情報を表示するために使用できます:
- Redisサービスに関するすべての情報を表示:
redis-cli info
- サービスのメモリ情報を表示:
redis-cli info memory
- サービスのキースペース情報を表示:
redis-cli info keyspace
- サービスの統計情報を表示:
redis-cli info stats
また、値を設定することも可能です Redisサービスを再起動せずに動的に設定することができます。動的に設定したこれらの値は、ポッドが再起動されると(デプロイメント、メンテナンス、あるいは単に一つのノードから別のノードへの移動の結果として起こり得る)永続化されません。
maxmemory
の設定値を動的に500mb
に設定する:config set maxmemory 500mb
maxmemory-policy
の設定値を動的にvolatile-lru
に設定する:config set maxmemory-policy volatile-lru