解释Magento缓存系统

San*_*raj 11 caching magento

谁能解释一下Magento缓存系统以及缓存模块在Magento中的工作原理?

Sha*_*lly 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

并用于整页cahing:

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并将其重命名为手动终止所有缓存并强制重新加载这些文件.

全部缓存此选择框是将操作应用于所有复选框的便捷功能.

无变化 - 不会采取任何会影响所有方面的行动.刷新 - 将清除所有缓存,但所有启用的方面将保持启用状态.禁用 - 禁用所有缓存.启用 - 启用所有缓存.

目前,缓存主要在核心组件中实现.

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

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

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

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

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

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


dav*_*elo 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()
    {

    }
...
Run Code Online (Sandbox Code Playgroud)

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

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