Magento 开发教程实战 - Magento 中的 Full page cache 是如何起作用的

Magento 开发教程实战 - Magento 中的 Full page cache 是如何起作用的?

文章主要讲解了在 Magento 中使用 full page cache 需要注意哪些事项,尤其是 Magento 1 和 Magento 2 版本中 full page cache 的差异。

此 Magento 2 教程着眼于Magento 2 全页缓存(FPC)。 FPC 是 Magento 2 的一项关键性能功能,但与Magento 1 FPC 明显不同。

在 Magento 2 中,FPC 最引人注目的一点是,它现在是社区版(CE)的一个标准功能。在Magento 1中,FPC只是一个企业版(EE)的功能,这意味着企业版用户必须购买一个模块才能获得这种功能。

Magento 2 的 FPC 的另一个同样值得注意的方面是,Varnish 集成在 FPC 中只需最小的配置就可以使用,这意味着缓存是 Magento 2 的核心,而不是事后的想法。

变化概览

![change.png](https://img-blog.csdnimg.cn/img_convert/90e646c8bf4f9a8c6458358c845a4b41.png#clientId=uf84bc8ba-c196-4&from=ui&id=YF6YC&margin=[object Object]&name=change.png&originHeight=383&originWidth=875&originalType=binary&size=84959&status=done&style=none&taskId=ube4cd8d9-2527-48a0-9559-f8f9fa161f4)

内置 FPC 选项

当 Magento 2 最初安装时,FP C使用内置选项。这与 Magento 1 中的 FPC 引擎类似。

![full_page_cache.png](https://img-blog.csdnimg.cn/img_convert/ff85fa2ca828b641d220e0a656efcf5a.png#clientId=uf84bc8ba-c196-4&from=ui&id=ud41ae4be&margin=[object Object]&name=full_page_cache.png&originHeight=217&originWidth=905&originalType=binary&size=37072&status=done&style=none&taskId=u40207d9e-5954-4cb5-863c-a55daa51407)

正如你从截图中看到的,内置选项有一个相当明显的免责声明,即不建议用于生产环境。这可能会导致它被认为是轻量级的。然而,就像它的前身 Magento 1 一样,它的好处是:它是可配置的,所以缓存存储可以使用一些不同的外部应用程序,包括 Redis 和数据库(默认是文件系统)。

另外,和 Magento 1一样,FPC 的缓存存储配置和其他的缓存存储配置是分开的。在 app/etc/env.php 中实现这一配置的一个例子是这样的。

<?php
return array (
    ...
    'cache' => array (
        'frontend' => array (
            'default' => array (
                'backend' => 'Cm_Cache_Backend_Redis',
                'backend_options' => array (
                    'server' => '127.0.0.1',
                    'port' => '6379',
                    'database' => '0',
                ),
            ),
            'page_cache' => array (
                'backend' => 'Cm_Cache_Backend_Redis',
                'backend_options' => array (
                    'server' => '127.0.0.1',
                    'port' => '6379',
                    'database' => '1',
                ),
            )
        ),
    ),
    ...
);

这里我们看到一个默认的和 page_cache 的数组键定义在 frontend 数组键下(这里的 frontend 指的是一个缓存前端,而不是前端配置命名空间)。默认数组键配置了常规的缓存部分(如配置、布局、块),存储在 Redis 实例中的 0 号 DB 上(Redis 上可以分 16 个 DB)。

page_cache 数组键将内置的 FPC 配置为使用相同的 Redis 实例,但是使用的是数据库 1。熟悉 Magento 1 的用户可能会认为删除 page_cache 数组键会导致 FPC 回到使用默认的缓存设置并继续使用 Redis。然而,在Magento 2 中,FPC 的功能是完全独立的,所以如果删除 page_cache 数组键,它实际上会退回到文件系统。

因此,内置的选项其实也很强大,对于流量不大的网站来说是相当足够的,尤其是在配置使用类似 Redis 的东西的时候。然而,它的性能无法达到 Varnish 类似水平的原因是,所有的流量仍然通过 Web 服务器(例如 apache,nginx ),因此 Magento 仍然必须处理所有的请求,即使是完全缓存的页面,也需要启动以实现这一点。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值