php 快取工具類 實現網頁快取

2022-07-26 07:36:10 字數 1719 閱讀 1045

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 ...