php 快取工具類 實現網頁快取
php程式在抵抗大流量訪問的時候動態**往往都是難以招架,所以要引入快取機制,一般情況下有兩種型別快取
一、檔案快取
二、資料查詢結果快取,使用記憶體來實現快取記憶體
本例主要使用檔案快取。
主要原理使用快取函式來儲存網頁顯示結果,如果在規定時間裡再次呼叫則可以載入快取檔案。
工具類**:
// 檔案快取類class cache
} /**
* 檢查快取是否有效
*/private function isvalid()
/*** 寫入快取
* $mode == 0 , 以瀏覽器快取的方式取得頁面內容
* $mode == 1 , 以直接賦值(通過$content引數接收)的方式取得頁面內容
* $mode == 2 , 以本地讀取(fopen ile_get_contents)的方式取得頁面內容(似乎這種方式沒什麼必要)
*/public function write($mode = 0, $content = '')
ob_end_flush ();
try catch ( exception $e )
} /**
* 載入快取
* exit() 載入快取後終止原頁面程式的執行,快取無效則執行原頁面程式生成快取
* ob_start() 開啟瀏覽器快取用於在頁面結尾處取得頁面內容
*/public function load() else
} /**
* 清除快取
*/public function clean() catch ( exception $e )
} /**
* 取得快取檔案路徑
*/private function getcacheid()
/*** 檢查目錄是否存在或是否可建立
*/private function dir_isvalid($dir) catch ( exception $e )
return true;
} /**
* 取得當前頁面完整url
*/private function geturl() else
return $url;
} /**
* 輸出錯誤資訊
*/private function error($str)
}
使用方法:
使用方法如下:
一部分**放在要被快取邏輯**前面:
$cachedir = './cache/'; // 設定快取目錄$cache = new cache ( $cachedir, 33 ); // 省略引數即採用預設設定, $cache = new cache($cachedir);
if (@$_get ['cacheact'] != 'rewrite' || @$_get ['clearcache'] == 'ok') // 此處為一技巧,通過xx.php?cacheact=rewrite更新快取,以此類推,還可以設定一些其它操作
$cache->load (); // 裝載快取,快取有效則不執行以下頁面**
// 頁面**開始
一部分放在被快取邏輯**後面:
// 頁面**結束$cache->write (); // 首次執行或快取過期,生成快取
php實現網頁快取的工具類分享
php程式在抵抗大流量訪問的時候動態 往往都是難以招架,所以要引入快取機制,一般情況下有兩種型別快取程式設計客棧 一 檔案快取 二 資料查詢結果快取,使用記憶體來實現快取記憶體 本例主要使用檔案快取。主要原理使用快取函式來儲存網頁顯示結果,如果在規定時間裡再次呼叫則可以載入快取檔案。工具類 檔案快取...
Redis作為快取實現工具類
使用redis作為快取物件,常用的儲存格式為字串,所以在儲存快取時,將物件轉為字串儲存.由於存的時候為字串,所以取出的也為json字串.此工具類在設值時只需要將key與物件傳入即可 取值時只需要將key與要取的物件型別傳入即可 public class cacheutilimpl implement...
工具類 快取輔助類
在專案中的統計模組中,查詢耗費的時間,實在是太長了,通過優化sql語句或者新增快取來提高查詢的速度,自己就弄了乙個快取的輔助類,方便操作快取中的資料。1 using system 2using system.collections 3using system.collections.generic ...