Posts Tagged ‘缓存’

uchome源码解读之配置表缓存

Posted in Uncategories on 6月 29th, 2009 by 飘(piao2010) – Be the first to comment

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://remindme.blogbus.com/logs/30433431.html

做为sns站点,相比cms站点,动态性要求高,生成静态页面价值不是太大,变更因素太多,因此uchome的缓存一方面是view的缓存,也就是template的缓存,一方面则对每个页面都需要的配置文件做了缓存,减小数据库服务器的负荷.
在home/common.php中,对配置的读取是这样的:
//配置文件
if(!@include_once(S_ROOT.’./data/data_config.php’)) {
include_once(S_ROOT.’./source/function_cache.php’);
config_cache();
}
data/data_config.php文件是通过config_cache()来生成的,看看function_cahce.php文件中的具体实现:
//更新配置文件
function config_cache($updatedata=true) {
global $_SGLOBAL, $_SCONFIG;

$_SCONFIG = array();
$query = $_SGLOBAL['db']->query(’SELECT * FROM ‘.tname(’config’));
while ($value = $_SGLOBAL['db']->fetch_array($query)) {
if($value['var'] == ‘privacy’) {
$value['datavalue'] = empty($value['datavalue'])?array():unserialize($value['datavalue']);
}
$_SCONFIG[$value['var']] = $value['datavalue'];
}
cache_write(’config’, ‘_SCONFIG’, $_SCONFIG);
…..略去部分
} read more »