Redis サービスの設定

Redisは、Adobe Commerceがデフォルトで使用するZend Framework Zend_Cache_Backend_Fileに代わるオプションのバックエンドキャッシュソリューションです。

IMPORTANT
Redis キャッシュは、2.4.5-p16、2.4.6-p14、2.4.7-p9、および2.4.8-p4以降のAdobe Commerce 2.4.9またはパッチリリースではサポートされていません。 Redisがサポートされていないキャッシュ設定にはValkeyを使用してください。 リリース別のサポートされているキャッシュサービスについては、必要システム構成を参照してください。

master ブランチを含むPro統合環境およびスターター環境でのサービス設定については、次の手順を使用します。

NOTE
Pro実稼動環境とステージング環境のサービス構成を変更するには、Adobe Commerce サポートチケットを送信してください。 スケジュール要件と顧客の可用性に関するガイダンスについては、サービスの設定​のPro サービス サポート ​を参照してください。

Redisを有効にする

Redisを有効にするには、次のファイルを更新します。

  • .magento/services.yaml
  • .magento.app.yaml

サービスの設定

.magento/services.yamlで、Redis サービス定義を追加します。 <version>を、お使いのAdobe Commerceのバージョンと現在のCloud テンプレートでサポートされているRedisのバージョンに置き換えます。

cache:
  type: redis:<version>

例えば、Redis 7.2をサポートするCommerce リリースとCloud テンプレートの場合は、次のようになります。

cache:
  type: redis:7.2

例のバージョンは普遍的ではありません。 実際のデフォルトバージョンとサポートされているサービスバージョンは、Adobe Commerceのバージョン、パッチレベル、現在のCloud テンプレートによって異なります。 ​ システム要件と現在のプロジェクトテンプレートでサポートされている組み合わせを確認します。

サービス関係の設定

.magento.app.yamlで、アプリケーションとRedis サービスの関係を設定します。

runtime:
  extensions:
    - redis

relationships:
  redis: "cache:redis"

関係キーredisは、アプリケーションがサービスにアクセスするために使用する名前です。 値cache:redisは、.magento/services.yamlで定義されたサービス ID (cache)とサービスの種類(redis)で構成されています。

変更をコミットしてデプロイする

設定の変更を追加、コミット、プッシュします。

git add .magento/services.yaml .magento.app.yaml
git commit -m "Enable Redis service"
git push origin <branch-name>

デプロイメントが完了したら、Redis サービス関係が使用可能であることを確認します。

TIP
最初のサービス設定の後、services.yamlおよび.magento.app.yaml設定ファイルを更新することで、インストール済みサービスのソフトウェアバージョンを変更できます。 サービスのアップグレードまたはダウングレードに関するガイダンスについては、​ サービスバージョンの変更を参照してください。 このセルフサービス方式は、Pro ステージング環境または実稼動環境には適用されません。Configure services​のPro サービスのサポート ​を参照してください。

サービス関係の確認

設定をデプロイしたら、アプリケーションコンテナから次のコマンドを実行して、デコードされたMAGENTO_CLOUD_RELATIONSHIPS オブジェクトを表示します。

SSHを使用してリモートクラウド環境に接続し、次を実行します。

echo "$MAGENTO_CLOUD_RELATIONSHIPS" | base64 -d | json_pp

このコマンドは、設定されたすべてのサービス関係を表示します。 Redis接続の詳細を識別するには、redis関係を探します。

次の省略形の例は、redis関係を示しています。 ユニバーサルスキーマではありません。

{
   "database" : [
      {
         "host" : "database.internal",
         "port" : 3306,
         "path" : "main",
         "scheme" : "mysql"
      }
   ],
   "opensearch" : [
      {
         "host" : "opensearch.internal",
         "port" : 9200,
         "path" : null,
         "scheme" : "http"
      }
   ],
   "redis" : [
      {
         "host" : "redis.internal",
         "port" : 6379,
         "path" : null,
         "scheme" : "redis"
      }
   ]
}

出力は、環境とサービス設定によって異なります。 この例では、ホスト名、ポート、IP アドレス、クラスター名、サービスバージョン、ユーザー名、パスワードをハードコーディングしないでください。 ターゲット環境でMAGENTO_CLOUD_RELATIONSHIPSによって返される値を使用します。

jqが使用可能な場合は、次のコマンドを使用して、Redis関係のみを表示します。

printf '%s' "$MAGENTO_CLOUD_RELATIONSHIPS" \
  | base64 -d \
  | jq '{redis: .redis}'

サービス関係について詳しくは、​ サービスの設定を参照してください。

Redis設定のカスタマイズ

キャッシュ、セッション、L2、およびレプリカ接続に関する推奨事項については、実装プレイブックのベストプラクティスガイド​の「ValkeyとRedis サービス設定のベストプラクティス ​」を参照してください。

Redis CLIの使用

Redis関係がredisであると仮定すると、MAGENTO_CLOUD_RELATIONSHIPSから返されたホストとポートを使用してRedisに接続します。

Redisがインストールおよび設定された環境に接続し、次のコマンドを実行します。

redis-cli -h <host> -p <port>

redis-cli -h redis.internal -p 6379

インストール済みのRedis バージョンを取得

統合環境

統合環境で、redis関係によって返されるホストとポートを使用して、次を実行します。

code language-terminal
redis-cli -h <host> -p <port> info | grep version

応答の例

code language-text
redis_version:<installed-version>
gcc_version:<gcc-version>

バージョンとビルドの詳細は環境によって異なります。 表示されたサンプルバージョンを必須またはユニバーサルサービスバージョンとして扱わないでください。

Pro ステージングおよび実稼動

Pro ステージング環境と実稼動環境では、次を実行します。

code language-terminal
redis-server -v

応答の例

code language-text
Redis server v=<installed-version> ...

バージョンとビルドの詳細は環境によって異なります。 表示されたサンプルバージョンを必須またはユニバーサルサービスバージョンとして扱わないでください。

Redisのトラブルシューティング

Redisの問題のトラブルシューティングについては、次のAdobe Commerce サポート記事を参照してください。

キャッシュクリーンエラーは、Valkey設定のキャッシュでRedisを参照します

cache サービスがValkeyとして設定されている場合でも、デプロイ前のキャッシュクリーンのエラーで、エラーコード [107]clean-redis-cache)とConnection to Redis メッセージが表示される可能性があります。 ece-toolsは、どのサービスがcache関係をサポートするかにかかわらず、キャッシュクリーン手順に対してこの従来のRedis指向エラーコードとメッセージを使用します。そのため、Redisがインストールされていることを示す文言はありません。

関係ホストのName or service not knownなどのDNS エラーが原因で発生した場合、サービス関係が利用可能になる前にデプロイ手順が実行されるか、.magento.app.yamlの関係名が.magento/services.yamlのサービス IDと一致しません。 ​ サービス関係の確認を参照してください。

recommendation-more-help
commerce-on-cloud-help-cloud-guide