設定快取前端和型別

快取前端是Commerce快取型別與快取儲存後端之間的介面。 您可以定義多個前端,每個前端都有不同的後端設定,然後將特定的快取型別指派給每個前端。

使用此關係來決定每個快取型別儲存資料的位置:

cache type -> cache frontend -> cache backend

如果您想要針對不同型別的快取資料使用不同的快取後端或設定,這會很有用。 例如,您可以將full_page快取型別指派給使用專用Valkey資料庫的page_cache前端,而其他快取型別則使用default前端。

NOTE
若為雲端專案上的Adobe Commerce,請參閱Redis與Valkey服務組態的最佳實務以取得快取組態指示。 Adobe Commerce 2.4.9或更新於2.4.5-p16、2.4.6-p14、2.4.7-p9和2.4.8-p5的修補程式版本不支援Redis快取。 對於不支援Redis的快取設定,請使用Valkey。 如需依版本支援的快取服務,請參閱系統需求

使用預設前端

Commerce提供適用於所有快取型別的default快取前端。 它藉由實作Magento\Framework\Cache\Core前端快取來擴充Zend_Cache_Core

在大多數情況下,您不需要自訂前端。 您只需要設定後端。 請參閱快取後端選項

定義自訂快取前端

下列步驟將逐步說明將快取前端與快取型別建立關聯的步驟。

步驟1:定義快取前端並指派快取型別

若要定義自訂快取前端,請將組態新增至app/etc/env.php (覆寫di.xml):

'cache' => [
    'frontend' => [
        '<unique frontend id>' => [
             <cache options>
        ],
    ],
    'type' => [
         <cache type 1> => [
             'frontend' => '<unique frontend id>'
        ],
         <cache type 2> => [
             'frontend' => '<unique frontend id>'
        ],
    ],
],

其中:

  • <unique frontend id> — 識別前端的唯一名稱(例如,defaultpage_cachestale_cache_enabled
  • <cache options> — 此前端的後端型別和選項(請參閱快取選項
  • <cache type> — 要指派給此前端的Commerce快取型別(例如,configlayoutblock_htmlfull_page
TIP
Adobe Commerce 2.4.9和更新版本使用簡化的後端型別名稱,例如valkeyfile,搭配Symfony快取實作。 如需後端範例和特定版本的指南,請參閱快取後端選項

步驟2:設定前端和後端選項

您可以在env.phpdi.xml中指定前端和後端快取組態選項。 此為選擇性工作。 如果您未指定選項,Commerce會使用預設的前端和後端設定。

env.php範例:

'frontend' => <frontend_type>,
'frontend_options' => [
    <frontend_option> => <frontend_option_value>,
    ...
],
'backend' => <backend_type>,
'backend_options' => [
    <backend_option> => <backend_option_value>,
    ...
],

其中:

  • <frontend_type> — 低階前端快取型別。 指定與Zend\Cache\Core相容的類別名稱。如果省略,則使用Magento\Framework\Cache\Core

  • <frontend_option><frontend_option_value> — Commerce架構在建立時以關聯陣列形式傳遞給前端快取的選項名稱和值。

  • <backend_type> — 低階後端快取型別。 您可以指定:

    • 現代Symfony快取(2.4.9+,建議):簡化名稱,如redisvalkeyfile
    • 舊版(Zend型):與實作Zend_Cache_Backend_InterfaceZend_Cache_Backend相容的完整類別名稱
  • <backend_option><backend_option_value> — Commerce架構在建立時以關聯陣列形式傳遞給後端快取的選項名稱和值。

NOTE
舊版與現代實作:
  • 舊版(Zend型)'backend' => 'Magento\\Framework\\Cache\\Backend\\Redis'
  • 現代(Symfony快取)'backend' => 'valkey' (適用於Commerce 2.4.9+版和2.4.5 - 2.4.8版本行的最新修補程式版本,其中Valkey是支援的快取後端)。
現代Symfony快取實作可透過PSR-6法規遵循、Igbinary序列化、gzip壓縮、Lua指令碼和持續連線提供更優異的效能。

請參閱Laminas檔案,瞭解Zend型選項。 如需Symfony快取組態,請參閱本檔案中的RedisValkey文章。

recommendation-more-help
commerce-operations-help-configuration