最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > Magento > Magento教程 >

Magento缓存与全局配置文件缓存(8)

时间:2014-06-02 07:38来源:未知 作者:最模板zuimoban 点击:
getCacheId()获取config_global,它会把这个缓存加载进来。所以从缓存拿回来的_xml只是一部分,这才解释了本文刚开始遇到的疑问。可是新疑问又来了,既然是

getCacheId()获取config_global,它会把这个缓存加载进来。所以从缓存拿回来的_xml只是一部分,这才解释了本文刚开始遇到的疑问。可是新疑问又来了,既然是部分配置,那么如何获取店铺的配置呢?

首先是获取配置的用法:

1
2
3
$config->getNode('admin');
$config->getNode('stores');
$config->getNode('stores/default');

进入getNode()方法就可以看到,它根据第一个字段,相应的从缓存中取出缓存的内容。注意,其它获取配置的包装方法,都是间接使用getNode()方法,比如Mage::getStoreConfig()方法,实际调用Mage_Core_Model_Store的getConfig方法,而这个方法内部就是调用getNode:

1
2
3
4
5
public function getConfig($path)
{
    $fullPath = 'stores/' . $this->getCode() . '/' . $path;
    $data = $config->getNode($fullPath);
}

最后总结一下Magento中使用cache的方法:

1
2
3
4
5
6
7
8
//缓存一块数据
saveCache($data, $id, $tags=array(), $lifeTime=false)
//根据ID加载缓存
loadCache($id)
//根据ID删除缓存
removeCache($id)
//根据TAGS清楚缓存
cleanCache($tags=array())

来一段测试程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
$data = "12345678901234567890000000";
$id = "Test_Cache";
$tags = array('xTest','xCache');
 
$fromCache = Mage::app()->loadCache($id);
if($fromCache){
    echo "From cache---><br />";
    echo $fromCache;
    Mage::app()->removeCache($id);
}else{
    echo "No cache ---><br />";
    Mage::app()->saveCache($data, $id, $tags);
}

Magento缓存文件

Magento缓存文件内容

这种缓存的功能是ZF提供的。对于全局配置文件,如果不缓存,每次都读取合并很多文件,这个过程将产生大量的IO,如果缓存了,将可以减少大部分的IO操作和减少计算资源,但是还是要把缓存读入内存,如果能够把这些缓存放入共享内存中,理论上应该可以提升性能(减少了从磁盘调人内存这个IO操作,所以把缓存放入磁盘和放入共享内存,性能提升不明显的原因就在这里),如缓存已经在内存中,不用每次都调用文件写入内存,但是获取缓存转换成PHP对象仍然占有比较多内存,所以Magento是很非常耗内存,并发一多,就会很明显。 (责任编辑:最模板)

------分隔线----------------------------
栏目列表
推荐内容