【magento2配置专题12.1】缓存类型

缓存简介

Magento 2使用zend_cache与缓存存储交互。然而,Magento 2也有Magento\Cache库实现的具体缓存Magento。这些主题讨论如何配置缓存和缓存类型。

默认情况下,文件系统缓存启用;位于 /var.

更改缓存配置,编辑/app/etc/env.php.

缓存配置是与下列类似的关联数组:

'cache_types' =>
	array (
		'config' => 1,
		'layout' => 1,
		'block_html' => 1,
		'collections' => 1,
		'db_ddl' => 1,
		'eav' => 1,
		'full_page' => 1,
		'translate' => 1,
		'config_integration' => 1,
		'config_webservice' => 1,
		'config_integration_api' => 1,
	),
); 

上面列出了所有缓存类型,并显示它们都已启用。

副缓存前端缓存类型

Magento 2 缓存概述

Magento 2允许您配置文件系统缓存替代默认缓存。本指南讨论了一些替代方案,即,

    • Database
    • Redis
    • 设置 Vanish无需修改Magento的配置。

Magento 2使用以下缓存术语:

  • Frontend: Magento\Framework\Cache\Frontend.
  • Cache types: 可以设置一个类型Magento 2也可以创建你自己的.
  • Backend: 指定详细信息 cache storage, 实施 Magento\Framework\Cache\Backend

以下配置缓存选项 :

  • 修改默认前端缓存,只需要修改 /app/etc/di.xml
  • 配置您的自定义前端缓存,只需修改 /app/etc/env.php 因为它覆盖了等效配置 di.xml

Varnish 不需要更改Magento 2的配置.

步骤1:定义一个前端缓存

Magento 2 的默认前端缓存你可以使用任何缓存类型

使用 default 缓存类型, 不需要修改env.php 修改 di.xml. 参见引用的主题低级别缓存选项

您必须指定一个自定义缓存前端要么 app/etc/env.php 或 app/etc/di.xml.

下面的示例演示如何在 env.php (重写 di.xml):

'cache' => [
    'frontend' => [
        '' => [
             
        ],
    ],
    'type' => [
          => [
             'frontend' => ''
        ],
    ],
    'type' => [
          => [
             'frontend' => ''
        ],
    ],
],

第二步:配置缓存

您可以指定前端和后端env.php或di.xml缓存配置选项。这个任务是可选的

env.php 例子:

'frontend' => ,
'frontend_options' => [
     => ,
    ...
],
'backend' => ,
'backend_options' => [
     => ,
    ...
],

下一步

低级别缓存选项

Magento 2 使用一个低级别的缓存,前端和后端提供访问缓存存储。

前端低级别缓存

Magento 2 继承 Zend_Cache_Core 通过 Magento\Framework\Cache\Core 来实现前端低级别缓存.

后端低级别缓存

  • Redis
  • Database

Vanish不需要设置低级缓存

数据库缓存

数据库缓存概述

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

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

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

为了使数据库前端缓存使用默认,你必须修改 /app/etc/di.xml

修改 di.xml:

  1. 登录到magento2服务器,切换到 Magento 2文件系统所有者.
  2. 输入下列命令以复制 di.xml:

    cd /app/etc
    cp di.xml di.xml.bak
    
  3. 打开 di.xml 在文本编辑器中找到下面的块:

    
       
          
              
                  
                    page_cache
                  
              
          
       
    
    
       
          
            page_cache
          
       
    
    
  4. 用以下替换整个块:

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

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

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

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

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

为了使数据库缓存使用自定义缓存前端,你必须修改 /app/etc/env.php :

  1. 登录到magento 2服务器,转换到 Magento 2文件系统所有者.
  2. 输入下列命令以复制 env.php:

    cd /app/etc
    cp env.php env.php.bak
    
  3. 打开 env.php 在文本编辑器中任何地方添加如下 'cache_types' =>:

    'cache' => [
        'frontend' => [
            '' => [
                 
            ],
        ],
        'type' => [
              => [
                 'frontend' => ''
            ],
        ],
        'type' => [
              => [
                 'frontend' => ''
            ],
        ],
    ],
    

    例子: 配置实例

  4. 保存 env.php的更改,并关闭编辑器.
  5. 继续下一节 .

验证数据库的缓存工作

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

使用步骤:

  1. 登录magento 2服务器,切换到Magento 2文件系统所有者.
  2. 清除当前缓存目录 :

    rm -rf /var/cache/* /var/page_cache/* /var/di/* /var/generation/*
    
  3. 在Web浏览器中,去任何可缓存的页面.

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

  4. 输入下面的命令:

    ls /var/cache/*
    ls /var/page_cache/*
    
  5. 请验证两个目录是否为空;如果没有,请再次编辑 di.xml纠正任何问题。
  6. 使用一个数据库工具,例如 phpMyAdmin查看 cache 和 cache_tag 表.

    显示结果如下图:

    cache 数据表.

    cache_tag 数据表.

配置实例

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

前端默认缓存di.xml示例

di.xml 代码片段:

 
        
            
                
                  database
                    
                  
                  database
                  
            
        
    
    
        
            
                database
            
        
 

一个自定义的前端缓存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'
          ],
      ],
  ],

 

你可能感兴趣的:(magento2)