最近项目数据库的量越来越大,直接查DB的方式已经不能满足需求了,现成的缓存工具有memcached、redis,不过今天自己写了个文件缓存类,寥寥几行代码就能满足需求。代码如下:
Class FileCache{
Public function cache($filename, $expire, $table, $sql){
// 有缓存就用,没有就创建
if (file_exists($filename)) {
// 缓存超时,则重新创建
if ((time() - filemtime($filename)) > $expire) {
// 读DB数据
// 本来应该是从数据库里读数据,这里仅作演示
$data = array('table' => $table, 'sql' => $sql);
file_put_contents($filename, serialize($data));
return $data;
}else{
return unserialize(file_get_contents($filename));
}
}else{
// 读DB数据
// 本来应该是从数据库里读数据,这里仅作演示
$data = array('table' => $table, 'sql' => $sql);
file_put_contents($filename, serialize($data));
return $data;
}
}
}
$table = 'user';
$sql = 'select * from user';
$cache = new FileCache;
$text = $cache->cache('cache/cache_2', 3, $table, $sql);
print_r($text);