不需要特别复杂的缓存的时候可以采用简易缓存,设置缓存有效期,有效返回数据,无效返回无效.然后每日清空一下所有缓存.毕竟缓存太多了也占地方
/**
* 缓存
* @param $key 缓存名
* @param $value 缓存值 为空时为 读,不为空为写
*/
function filecache($key,$value='',$cachetime=3600){
if(is_array($key))$key=md5(json_encode($key));
$filename="cache/".$key.'.c';
clearcache();$time=time();
if(empty($value)){
$res=@file_get_contents($filename);
$array= json_decode($res,true);
if($array && $array['timestamp']>$time)return $array;
else return false;
}else{
if(!is_array($value))$value=array($value);
$value['timestamp']=$time+$cachetime;
$value=json_encode($value);
file_put_contents($filename,$value);
}return $filename;
}
//清空所有缓存 每日清空
function clearcache(){
$cachepath="cache/";
$date=date('Y-m-d');$cachename='cachetime'.$date.'.c';
if(file_exists($cachepath.$cachename))return false;
foreach(scandir($cachepath) as $fn) {
if(strpos($cachename,'.c')>0)unlink($cachepath.$fn);
}file_put_contents($cachepath.$cachename,'1');
return true;
}