Redis サービスの設定
Redisは、Adobe Commerceがデフォルトで使用するZend Framework Zend_Cache_Backend_Fileに代わるオプションのバックエンドキャッシュソリューションです。
master ブランチを含む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 サービス関係が使用可能であることを確認します。
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 |
|---|
|
応答の例
| code language-text |
|---|
|
バージョンとビルドの詳細は環境によって異なります。 表示されたサンプルバージョンを必須またはユニバーサルサービスバージョンとして扱わないでください。
Pro ステージング環境と実稼動環境では、次を実行します。
| code language-terminal |
|---|
|
応答の例
| code language-text |
|---|
|
バージョンとビルドの詳細は環境によって異なります。 表示されたサンプルバージョンを必須またはユニバーサルサービスバージョンとして扱わないでください。
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と一致しません。 サービス関係の確認を参照してください。