数据库缓存
数据库缓存概述
本主题讨论如何使用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
代码片段:
一个自定义的前端缓存env.php
示例
env.php
代码片段,所有的缓存类型与自定义前端缓存命名 magento_cache
: