[仅限PaaS]{class="badge informative" title="仅适用于云项目(Adobe管理的PaaS基础架构)和内部部署项目上的Adobe Commerce 。"}

配置缓存前端

缓存前端是Commerce和缓存存储后端之间的接口。 您可以定义多个前端,每个前端具有不同的后端设置,然后为每个前端分配特定的缓存类型

当您希望对不同类型的缓存数据使用不同的缓存后端或配置时,这将很有用。 例如,您可能希望在专用Redis数据库上进行full_page缓存,同时为default缓存使用单独的数据库。

使用默认前端

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
现代Symfony缓存实现(2.4.9+):​从Commerce 2.4.9开始,您可以将redisvalkeyfile等简化的后端类型用于现代Symfony缓存实现。 有关详细信息,请参阅对默认缓存使用Redis对默认缓存使用Valkey

步骤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' => 'redis' (建议用于Commerce 2.4.9+)
现代Symfony缓存实现通过PSR-6合规性、Igbinary序列化、gzip压缩、Lua脚本和永久连接提供了更好的性能。

有关基于Zend的选项,请参阅Laminas文档,或有关RedisValkey的现代Symfony缓存指南。

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c