コンテンツにスキップ

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-policyvolatile-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