风若寒 发表于 2014-5-3 16:27:11

想求助一下DZ缓存原理的问题

缓存执行文件if (!is_array($_G['cache']['nhzj_shop_shopbanner'])) {
nhzjupdatecache('menu');
}
$shopbanner_list = nhzjloadcache('shopbanner');
缓存存储
function nhzjupdatecache($cachename) {
$shopbanner = C::t('#nhzj_shop#shop_nav')->fetch_all_by_upid();
save_syscache('nhzj_shop_shopbanner', $shopbanner);
}
缓存调用
function nhzjloadcache($cachename) {
global $_G;
if(!isset($_G['cache']['nhzj_shop_'.$cachename])) {
loadcache('nhzj_shop_'.$cachename);
}
$cache = &$_G['cache']['nhzj_shop_'.$cachename];
return $cache;
}

缓存的原理就是在第一次读取时,把数据存储在缓存里面,下一次不需要读取数据库。
所以,loadcache('nhzj_shop_'.$cachename);在第二次可以不执行的。
为什么我的不执行$cache = &$_G['cache']['nhzj_shop_'.$cachename];就会失效。


我的代码上,在哪里有问题么?
页: [1]
查看完整版本: 想求助一下DZ缓存原理的问题