解释Magento缓存系统

时间:2012-02-14 19:51:27

标签: caching magento

任何人都可以解释一下Magento缓存系统&缓存模块如何在Magento中运行?

2 个答案:

答案 0 :(得分:14)

在这里阅读更多相关信息: http://www.magentocommerce.com/wiki/modules_reference/english/mage_adminhtml/system_cache/index

http://docs.magento.com/m1/ce/user_guide/system-operations/cache-management.html?Highlight=system%20cache

和整页记录:

http://docs.magento.com/m1/ce/user_guide/system-operations/cache-page-external.html?Highlight=system%20cache

从这个链接:

  

此屏幕允许您管理不同内部Magento方面的缓存设置。   访问“缓存管理”屏幕(系统>缓存管理)

     

缓存控制

     

在此字段集中,您会看到复选框,如果选中该复选框,   将为每个方面启用缓存,如下所述。

     

在开发过程中,即直接更改文件或数据库,请禁用   所有缓存以避免未定义的行为。

     

扩展升级,安装或卸载后,全部刷新   高速缓存中。

     

在将Magento移动到另一台服务器的过程中,缓存了config.xml和   local.xml导致问题,并有效地锁定了你   管理面板。找到/app/etc/use_cache.ser并将其重命名为kill all   手动缓存并强制重新加载这些文件。

     

所有缓存此选择框是应用操作的便利功能   所有复选框。

     

无变化 - 不会采取任何会影响所有方面的行动。   刷新 - 将清除所有缓存,但所有已启用的方面都将清除   保持启用状态禁用 - 禁用所有缓存。启用 - 启用全部   高速缓存中。

目前,缓存主要是在核心组件中实现的。

  • 配置 在这里,我们从app / etc /缓存合并的config.xml文件,保存在数据库中的所有模块和自定义配置。

  • 布局 从app / design / [package] / [theme] / layout / * .xml文件编译布局更新到每个页面的布局缓存

  • 阻止HTML输出 通过设置cache_lifetime和cache_key,可以缓存每个块。 这可能涉及非常复杂的逻辑,以避免不同块之间的表示不一致。 目前只缓存管理员顶部导航块。

  • EAV类型和属性 EAV(实体 - 属性 - 值模型)要求从数据库加载配置。为了加快初始化,我们缓存了这个配置。

  • 翻译 每个模块和每个主题都可以提供自己的翻译文件(目前为.csv)我们会缓存所有这些文件以避免在重新编译时浪费时间。

你可以使用setCacheLifetime和setCacheKey来显示产品数据的块,看看它是如何工作的

答案 1 :(得分:6)

您可以使用magento缓存块来重写一堆方法。

protected function _construct()
    {
        $this->addData(array(
            'cache_lifetime'    => 900,
            'cache_tags'        => array(Mage_Catalog_Model_Product::CACHE_TAG),
            'cache_key'            => $this->getCacheKey()
        ));
        // cache_lifetime=> time to cached the block
        // cache_tags=> type of the cache
        // cache_key => the key of the cache
    } 

public function getCacheKey()
    {

    }
...

我建议你在核心中看到一个例子。 例如:Mage_Poll_Block_Poll

稍后你应该启用探查器并查看块是否被缓存。您可以在此链接中查看更多信息 http://inchoo.net/ecommerce/magento/magento-block-caching/