php缓存读写

下面的一段代码是,把数据写入缓存和读取缓存数据,然后给缓存一个时间,在缓存生存时间内,我们使用缓存的数据,否则更新缓存。



<?php

class File{
private $_dir;
public function __construct(){
//dirname(__FILE__)当前目录
$this->_dir=dirname(__FILE__);
}
const EXT ='.txt';
public function cacheData($key,$value ='',$cacheTime = 0){
$filename =$this->_dir."/".$key.self::EXT;
echo $filename;
if ($value!==''){ //将value写入缓存
//如果value是null,那么把缓存删掉。
if (is_null($value)){
return @unlink($filename);
}
$dir =dir($filename);
if (!is_dir($dir))
{
mkdir($dir,0777);
}
//处理缓存时间,这里我们要设置缓存时间的长度,因为要截取缓存时间用
      $cacheTime =sprintf("%011d",$cacheTime);

//转换成字符串的形式。
return file_put_contents($filename, $cacheTime.json_encode($value));
}
//获取缓存
if (is_file($filename)){
return false;
}

$contents = file_get_contents($filename);
$cacheTime = substr($contents, 0,11);
$value = substr($contents, 11);
if ($cacheTime+filemtime($filename) > time()){
//如果缓存时间过期,从数据库中组织数据,写入缓存中。
}

return json_decode($value,true);

}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章