PHP文件缓存类

最近项目数据库的量越来越大,直接查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);

你可能感兴趣的:(PHP)