有时程序会遇到一些大量使用缓存的地方,但又不能都放在一起,因为I/O的读写也要考虑,下面两种方法可以很好的处理这个问题
方法一: 以前后缀缓存
//note 得到用户信息
$getUser = getUserInfo($uid);
if(strlen($getUser[0]['uid']) == 1){
$IdEnd = ‘a’;
$IdStar = ‘a’;
}else{
$IdEnd = substr($getUser[0]['uid'], -2);
$IdStar = substr($getUser[0]['uid'], 0,2);
}
$cacheDir = MOOPHP_DATA_DIR.’/site/’.$site.’/’.$IdEnd.’/';
$cacheFile = $cacheDir.$IdStar.’.php’;
MooMakeDir($cacheDir);
$show = array();
if(file_exists($cacheFile)) {
include($cacheFile);
}
$show[$getUser[0]['uid']] = array(‘name’ => $getUser['name'],
’age’ => $getUser['age'],
);
$siteUserPetShow = “<?php\r\n\$show = “.var_export($show, TRUE).”;\r\n”;
MooWriteFile($cacheFile, $siteUserPetShow);
方法二:以时间分目录缓存
//note 目录建立
$time = time();
$fileDir = MOOPHP_DATA_DIR.’/beauty/’.date(‘Y-m’, $time).’/’.date(‘Ymd’, $time).’.php’;
MooMakeDir(dirname($fileDir));
其它与等一种方法想同
以上两点其实都是分目录尽量减小缓存的大小,不同就在于分别缓存的方法

Categories
Tag Cloud
Blog RSS
Comments RSS
Last 50 Posts
Back
Void « Default
Life
Earth
Wind
Water
Fire
Light 