您的位置:首页 > 数据库

Magento2开发教程 - Magento 2 数据库缓存

2017-05-29 09:52 381 查看
数据库缓存概述

本主题讨论如何使用Magento 2数据库缓存. cache 和 cache_tag ,缓存的对象存储在Magento 2数据库表。不存储 var/cache 或 var/page_cache.

    使用默认的前端缓存, 只需要修改 di.xml.

    使用一个自定义的前端缓存, 只需要修改env.php.

样本配置 .

数据库缓存 使用 default 前端缓存

为了使数据库前端缓存使用默认,你必须修改 <Magento 2 安装目录>/app/etc/di.xml。

修改 di.xml:

    登录到magento2服务器,切换到 Magento 2文件系统所有者.

    输入下列命令以复制 di.xml:

    cd <Magento 2 安装目录>/app/etc

    cp di.xml di.xml.bak

    打开 di.xml 在文本编辑器中找到下面的块:

    <type name="Magento\Framework\App\Cache\Frontend\Pool">

       <arguments>

          <argument name="frontendSettings" xsi:type="array">

              <item name="page_cache" xsi:type="array">

                  <item name="backend_options" xsi:type="array">

                    <item name="cache_dir" xsi:type="string">page_cache</item>

                  </item>

              </item>

          </argument>

       </arguments>

    </type>

    <type name="Magento\Framework\App\Cache\Type\FrontendPool">

       <arguments>

          <argument name="typeFrontendMap" xsi:type="array">

            <item name="full_page" xsi:type="string">page_cache</item>

          </argument>

       </arguments>

    </type>

    用以下替换整个块:

    <type name="Magento\Framework\App\Cache\Frontend\Pool">

        <arguments>

            <argument name="frontendSettings" xsi:type="array">

                <item name="page_cache" xsi:type="array">

                  <item name="backend" xsi:type="string">database</item>

                    </item>

                  <item name="<your cache id>" xsi:type="array">

                  <item name="backend" xsi:type="string">database</item>

                  </item>

               </argument>

        </arguments>

    </type>

    <type name="Magento\Framework\App\Cache\Type\FrontendPool">

        <arguments>

            <argument name="typeFrontendMap" xsi:type="array">

                <item name="backend" xsi:type="string">database</item>

            </argument>

        </arguments>

    </type>

    保存您的更改并退出文本编辑器di.xml。

    继续验证数据库的缓存工作.

数据库缓存使用自定义前端缓存

本节介绍如何使用自定义缓存前端设置数据库缓存。

由于一个已知的问题,自定义缓存前端仍有一些对象被缓存到文件系统。

为了使数据库缓存使用自定义缓存前端,你必须修改 <Magento 2 安装目录>/app/etc/env.php :

    登录到magento 2服务器,转换到 Magento 2文件系统所有者.

    输入下列命令以复制 env.php:

    cd <Magento 2 安装目录>/app/etc

    cp env.php env.php.bak

    打开 env.php 在文本编辑器中任何地方添加如下 'cache_types' =>:

    'cache' => [

        'frontend' => [

            '<unique frontend id>' => [

                 <cache options>

            ],

        ],

        'type' => [

             <cache type 1> => [

                 'frontend' => '<unique frontend id>'

            ],

        ],

        'type' => [

             <cache type 2> => [

                 'frontend' => '<unique frontend id>'

            ],

        ],

    ],

    例子: 配置实例.

    保存 env.php的更改,并关闭编辑器.

    继续下一节 .

验证数据库的缓存工作

验证数据库缓存工作,明确当前的缓存目录,在Web浏览器的任何可缓存的页面,并验证数据写入数据库而不是文件系统。

使用步骤:

    登录magento 2服务器,切换到Magento 2文件系统所有者.

    清除当前缓存目录 :

    rm -rf <Magento 2 安装目录>/var/cache/* <Magento 2 安装目录>/var/page_cache/* <Magento 2 安装目录>/var/di/* <Magento 2 安装目录>/var/generation/*

    在Web浏览器中,去任何可缓存的页面.

    如果显示异常, 验证 di.xml 语法,然后再试一次. (要在浏览器查看到异常显示,你必须 使用开发者模式.)

    输入下面的命令:

    ls <Magento 2 安装目录>/var/cache/*

    ls <Magento 2 安装目录>/var/page_cache/*

    请验证两个目录是否为空;如果没有,请再次编辑 di.xml纠正任何问题。

    使用一个数据库工具,例如 phpMyAdmin 查看 cache 和 cache_tag 表.

    显示结果如下图:

    cache 数据表.

    Sample contents of the cache table with database 缓存 enabled

    cache_tag 数据表.

    Sample contents of the cache tag table with database 缓存 enabled

配置实例

本节包含配置数据库缓存示例代码片段。

前端默认缓存di.xml示例

di.xml 代码片段:

 <type name="Magento\Framework\App\Cache\Frontend\Pool">

        <arguments>

            <argument name="frontendSettings" xsi:type="array">

                <item name="page_cache" xsi:type="array">

                  <item name="backend" xsi:type="string">database</item>

                    </item>

                  <item name="default" xsi:type="array">

                  <item name="backend" xsi:type="string">database</item>

                  </item>

            </argument>

        </arguments>

    </type>

    <type name="Magento\Framework\App\Cache\Type\FrontendPool">

        <arguments>

            <argument name="typeFrontendMap" xsi:type="array">

                <item name="backend" xsi:type="string">database</item>

            </argument>

        </arguments>

 </type>

一个自定义的前端缓存env.php示例

env.php 代码片段,所有的缓存类型与自定义前端缓存命名 magento_cache:

 'cache' => [

     'frontend' => [

        'magento_cache' => [

             'backend' => 'database'

         ],

      ],

      'type' => [

         'config' => [

            'frontend' => 'magento_cache'

          ],

         'layout' => [

            'frontend' => 'magento_cache'

          ],

         'block_html' => [

            'frontend' => 'magento_cache'

          ],

         'view_files_fallback' => [

            'frontend' => 'magento_cache'

          ],

         'view_files_preprocessing' => [

            'frontend' => 'magento_cache'

          ],

         'collections' => [

            'frontend' => 'magento_cache'

          ],

         'db_ddl' => [

            'frontend' => 'magento_cache'

          ],

         'eav' => [

            'frontend' => 'magento_cache'

          ],

         'full_page' => [

            'frontend' =&g
a732
t; 'magento_cache'

          ],

         'translate' => [

            'frontend' => 'magento_cache'

          ],

         'config_integration' => [

            'frontend' => 'magento_cache'

          ],

         'config_integration_api' => [

            'frontend' => 'magento_cache'

          ],

         'config_webservice' => [

            'frontend' => 'magento_cache'

          ],

      ],

  ],
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息