设置Valkey服务
Valkey是云基础架构上Adobe Commerce的可选后端缓存解决方案。 当您覆盖Adobe Commerce 2.4.9及更高版本上的默认缓存配置,或在2.4.5-p16、2.4.6-p14、2.4.7-p9和2.4.8-p4之前的修补程序版本上的默认缓存配置时,需要Valkey。
请按照以下说明在专业集成环境和入门环境(包括master分支)上进行服务设置。
配置Valkey
要使用Valkey替换Redis,请更新以下文件:
.magento/services.yaml.magento.app.yaml
配置服务
在.magento/services.yaml中,将Redis服务定义替换为Valkey服务定义。 将<version>替换为您的Adobe Commerce版本和当前云模板支持的Valkey版本。
cache:
type: valkey:<version>
示例
cache:
type: valkey:8.0
示例版本不是通用的。 实际的默认服务版本和支持的服务版本取决于您的Adobe Commerce版本和当前的Cloud模板。 使用当前项目模板指定的版本。 有关详细信息,请参阅配置服务。
将type值从redis:<version>更改为valkey:<version>时,即使您保留了相同的服务ID,也不要假定缓存和会话数据会保留。 将迁移视为创建新的缓存:无法保证保留现有缓存和会话数据,并且在迁移完成后用户将注销。
配置服务关系
在.magento.app.yaml中,配置应用程序与Valkey服务之间的关系:
relationships:
valkey: "cache:valkey"
关系键valkey是应用程序用于访问服务的名称。 值cache:valkey引用了.magento/services.yaml中定义的服务ID和服务类型。
credis客户端库与Valkey进行通信,默认情况下,该库通过普通PHP套接字工作。 若要提高性能,请在.magento.app.yaml中启用redis PHP扩展。 credis在编译后的扩展可用时自动使用该扩展。| code language-yaml |
|---|
|
提交并部署更改
添加、提交和推送配置更改:
git add .magento/services.yaml .magento.app.yaml
git commit -m "Enable Valkey service"
git push origin <branch-name>
部署完成后,验证Valkey服务关系是否可用。
自定义Valkey配置
有关缓存、会话、L2和副本连接建议,请参阅 实施行动手册最佳实践指南 中的Valkey和Redis服务配置的最佳实践。
验证服务关系
要显示已解码的MAGENTO_CLOUD_RELATIONSHIPS对象,请在部署配置后从应用程序容器中运行以下命令:
使用SSH连接到远程云环境,然后运行:
echo "$MAGENTO_CLOUD_RELATIONSHIPS" | base64 -d | json_pp
该命令显示所有已配置的服务关系。 要识别Valkey连接详细信息,请找到valkey关系。
示例输出
以下缩写示例显示了valkey关系。 它不是一个通用的架构。
{
"database" : [
{
"host" : "database.internal",
"port" : 3306,
"path" : "main",
"scheme" : "mysql"
}
],
"opensearch" : [
{
"host" : "opensearch.internal",
"port" : 9200,
"path" : null,
"scheme" : "http"
}
],
"valkey" : [
{
"host" : "valkey.internal",
"port" : 6379,
"path" : null,
"scheme" : "valkey"
}
]
}
输出因环境和服务配置而异。 请勿对此示例中的主机名、端口、IP地址、群集名称、服务版本、用户名或密码进行硬编码。 在目标环境中使用MAGENTO_CLOUD_RELATIONSHIPS返回的值。
如果jq可用,则仅显示Valkey关系:
printf '%s' "$MAGENTO_CLOUD_RELATIONSHIPS" \
| base64 -d \
| jq '{valkey: .valkey}'
有关服务关系的详细信息,请参阅配置服务。
使用Valkey CLI
假定您的Valkey关系名为valkey,请使用MAGENTO_CLOUD_RELATIONSHIPS返回的主机和端口连接到Valkey:
valkey-cli -h <host> -p <port>
示例
valkey-cli -h valkey.internal -p 6379
获取已安装的Valkey版本
在集成环境中,使用valkey关系返回的主机和端口运行:
| code language-terminal |
|---|
|
示例响应
| code language-text |
|---|
|
版本和内部版本详细信息因环境而异。 请勿将显示的示例版本视为必需或通用服务版本。
在专业暂存和生产环境中,运行:
| code language-terminal |
|---|
|
示例响应
| code language-text |
|---|
|
版本和内部版本详细信息因环境而异。 请勿将显示的示例版本视为必需或通用服务版本。
Valkey疑难解答
Cache-clean错误引用Valkey配置的缓存上的Redis
预部署缓存清理失败可能会显示错误代码[107] (clean-redis-cache)和Connection to Redis消息,即使cache服务配置为Valkey也是如此。 无论后备缓存服务是Redis还是Valkey,ece-tools都会将此错误代码和消息用于缓存清理步骤。
如果基础错误是DNS故障(如关系主机的Name or service not known),则部署步骤在服务关系可用之前运行,或者.magento.app.yaml中的关系名称与.magento/services.yaml中的服务ID不匹配。 请参阅验证服务关系。