数据库缓存
数据库缓存概述
本主题讨论如何使用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数据表.
cache_tag数据表.
 
配置实例
本节包含配置数据库缓存示例代码片段。
前端默认缓存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' => 'magento_cache'
          ],
         'translate' => [
            'frontend' => 'magento_cache'
          ],
         'config_integration' => [
            'frontend' => 'magento_cache'
          ],
         'config_integration_api' => [
            'frontend' => 'magento_cache'
          ],
         'config_webservice' => [
            'frontend' => 'magento_cache'
          ],
      ],
  ],