设置Redis服务
Redis是一个可选的后端缓存解决方案,它取代了Adobe Commerce默认使用的Zend Framework Zend_Cache_Backend_File。
请按照以下说明在专业集成环境和入门环境(包括master分支)上进行服务设置。
启用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服务关系是否可用。
验证服务关系
部署配置后,从应用程序容器中运行以下命令以显示已解码的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 |
|---|
|
版本和内部版本详细信息因环境而异。 请勿将显示的示例版本视为必需或通用服务版本。
在专业暂存和生产环境中,运行:
| code language-terminal |
|---|
|
示例响应
| code language-text |
|---|
|
版本和内部版本详细信息因环境而异。 请勿将显示的示例版本视为必需或通用服务版本。
Redis疑难解答
请参阅以下Adobe Commerce支持文章,以获取有关Redis问题疑难解答的帮助:
Cache-clean错误引用Valkey配置的缓存上的Redis
预部署缓存清理失败可能会显示错误代码[107] (clean-redis-cache)和Connection to Redis消息,即使cache服务配置为Valkey也是如此。 ece-tools使用此旧版面向Redis的错误代码和消息执行缓存清理步骤,而不管哪个服务支持cache关系,因此措辞不表示Redis已安装。
如果基础错误是DNS故障(如关系主机的Name or service not known),则部署步骤在服务关系可用之前运行,或者.magento.app.yaml中的关系名称与.magento/services.yaml中的服务ID不匹配。 请参阅验证服务关系。