簡單的文件緩存函數

前幾天一個很古老的網站忽然要加微信分享功能。無奈cms太過古老。沒法緩存微信接口的AccessToken。存數據庫以爲得不償失。加redis 以爲還不如存數據庫(還須要 給線上服務器裝redis服務,以爲範不上)。只好寫道文件裏。php

function setCache($cache_key,$data=false,$time=3600){
    //緩存文件存在且時間不超過一小時,則直接使用緩存的結果集,不在進行任何的MySQL查詢了
    $cachFile = $_SERVER['DOCUMENT_ROOT'].'/Data/'.$cache_key.'.php';
    if($data || $data!==false||$data===NULL){
        $data = json_encode($data);
        file_put_contents($cachFile, $data);
    }else{
        if(file_exists($cachFile) && time()-filemtime($cachFile) < $time) {
            //使用緩存中的結果
            $json = file_get_contents($cachFile);
            if($json=='null'){
                return false;
            }
            return json_decode($json,true);
        }
        return false;
    }
    return false;
}

setCache('key','mycache');//設置緩存

echo setCache('key'); //讀取緩存
setCache('key',null);//清空緩存

有一點不知道是否合理,就是當我清空緩存的時候。是否有必要取把這個緩存文件刪掉。redis

相關文章
相關標籤/搜索