php 資料庫緩衝:php檔案快取資料
來源:互聯網
上載者:User
在做網吧看看的時候,由於頁面中存在電影的搜尋功能(使用者輸入)
這個功能由於不能夠做成靜態化,那麼就只能夠動態,用動態時候會對資料庫,伺服器壓力帶來很大的考驗
所以就只能用到快取資料的方式了
資料緩衝的形式包括:
1、將資料緩衝到記憶體,相信大家這個就會想到了Memcached.memcached是高效能的分布式記憶體快取服務器。 一般的使用目的是,通過快取資料庫查詢結果,減少資料庫訪問次數,以提高動態Web應用的速度、 提高可擴充性。
2、用檔案來快取資料.將資料儲存到檔案中,用key=>value的形式來儲存,key指檔案名稱.這個地方必須要保證key的唯一性
設定檔案的緩衝時間,如果過時了就從資料庫中得到資料並儲存到檔案中,
下面是一個檔案快取類:
1、快取資料
2、得到資料
3、判斷快取資料是否存在
4、刪除某個快取資料
5、清除過時的快取資料
6、清除所以的快取資料
class Inc_FileCache{
private $cacheTime = 3600; //預設緩衝時間
private $cacheDir = CACHE_DIR; //緩衝絕對路徑
private $md5 = true; //是否對鍵進行加密
private $suffix = ".php"; //設定檔案尾碼
public function __construct($config){
if( is_array( $config ) ){
foreach( $config as $key=>$val ){
$this->$key = $val;
}
}
}
//設定緩衝
public function set($key,$val,$leftTime=null){
$key = $this->md5 ? md5($key) : $key;
$leftTime = $leftTime ? $leftTime : $this->cacheTime;
!file_exists($this->cacheDir) && mkdir($this->cacheDir,0777);
$file = $this->cacheDir.'/'.$key.$this->suffix;
$val = serialize($val);
@file_put_contents($file,$val) or $this->error(__line__,"檔案寫入失敗");
@chmod($file,0777) or $this->error(__line__,"設定檔案許可權失敗");
@touch($file,time()+$leftTime) or $this->error(__line__,"變更檔時間失敗");
}
//得到緩衝
public function get($key){
$this->clear();
if( $this->_isset($key) ){
$key_md5 = $this->md5 ? md5($key) : $key;
$file = $this->cacheDir.'/'.$key_md5.$this->suffix;
$val = file_get_contents($file); 本文連結http://www.cxybl.com/html/wlbc/Php/20121222/35116.html