任何人都可以解释一下Magento缓存系统&缓存模块如何在Magento中运行?
答案 0 :(得分:14)
在这里阅读更多相关信息: http://www.magentocommerce.com/wiki/modules_reference/english/mage_adminhtml/system_cache/index
和整页记录:
从这个链接:
此屏幕允许您管理不同内部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/