設定Redis服務

Redis是選用的後端快取解決方案,可取代Adobe Commerce預設使用的Zend Framework Zend_Cache_Backend_File

IMPORTANT
Adobe Commerce 2.4.9或更新於2.4.5-p16、2.4.6-p14、2.4.7-p9和2.4.8-p4的修補程式版本不支援Redis快取。 在不支援Redis的快取設定中使用Valkey。 如需依版本支援的快取服務,請參閱系統需求

使用下列指示在Pro整合環境與入門環境(包括master分支)上進行服務設定。

NOTE
若要變更Pro生產和中繼環境上的服務組態,請提交Adobe Commerce支援票證。 如需排程需求與客戶可用性指引,請參閱​_設定服務_​中的專業服務支援

啟用Redis

若要啟用Redis,請更新下列檔案:

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

設定服務

.magento/services.yaml中,新增Redis服務定義。 以您的Adobe Commerce版本和目前的雲端範本支援的Redis版本取代<version>

cache:
  type: redis:<version>

例如,對於支援Redis 7.2的Commerce版本和雲端範本:

cache:
  type: redis:7.2

範例版本並非通用。 實際的預設和支援服務版本取決於您的Adobe Commerce版本、修補程式層級和目前的雲端範本。 驗證系統需求中支援的組合以及目前的專案範本。

設定服務關係

.magento.app.yaml中,設定應用程式與Redis服務之間的關係:

runtime:
  extensions:
    - redis

relationships:
  redis: "cache:redis"

關聯性索引鍵redis是應用程式用來存取服務的名稱。 值cache:redis包含在.magento/services.yaml中定義的服務識別碼(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測試或生產環境 — 請參閱​_設定服務_​中的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和復本連線建議,請參閱​ 實作Playbook最佳作法指南 ​中的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

請參閱下列Adobe Commerce支援文章,以取得疑難排解Redis問題的說明:

快取清除錯誤參考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中的服務識別碼不符。 請參閱驗證服務關係

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