《PHP應(yīng)用:thinkphp緩存技術(shù)詳解》要點:
本文介紹了PHP應(yīng)用:thinkphp緩存技術(shù)詳解,希望對您有用。如果有疑問,可以聯(lián)系我們。
PHP實戰(zhàn)本文詳細分析了thinkphp的緩存技術(shù).分享給大家供大家參考.具體分析如下:
PHP實戰(zhàn)如果沒有緩存的網(wǎng)站是百萬級或者千萬級的拜訪量,會給數(shù)據(jù)庫或者服務(wù)器造成很大的壓力,通過緩存,大幅減少服務(wù)器和數(shù)據(jù)庫的負荷,假如我們把讀取數(shù)據(jù)的過程分為三個層,第一個是拜訪層,第一個是緩存層,第三個是數(shù)據(jù)庫存取層,如果沒有緩存層,拜訪層是直接從數(shù)據(jù)庫存取層讀取數(shù)據(jù),而設(shè)置緩存后,拜訪層不再是直接在數(shù)據(jù)庫存取層讀取,而是從緩存層讀取數(shù)據(jù).
PHP實戰(zhàn)我們做個簡單的對比,假設(shè)一個頁面,在一個小時可被拜訪100萬次,如果這個頁面每次被拜訪的時候,都直接讀取數(shù)據(jù)庫后再編譯生成,在一個小時內(nèi)將會重復(fù)性的生成100萬次,而如果這個頁面被周期性的緩存10分鐘,也就是每間隔10分鐘緩存數(shù)據(jù)才會被生成一次,一個小時內(nèi)只會被生成6次,兩種方式一對比,效果明顯,兩種比較下服務(wù)器負荷的壓力比差別十幾萬倍以上,緩存技術(shù)將使得網(wǎng)站負載在高峰期游刃有余.
PHP實戰(zhàn)thinkphp的緩存方式有許多種,如File、Apachenote、Apc、Eaccelerator、Memcache、Shmop、Sqlite、Db、Redis和Xcache,現(xiàn)在我來說一下File緩存.
PHP實戰(zhàn)Thinkphp緩存文件的配置
PHP實戰(zhàn)Home是我建立的前臺項目,在Home\Conf\config.php找到緩存的配置文件,配置如下:
代碼如下:
<?php??
? return array(??????
? 'DB_TYPE'=>'mysql',??????
? 'DB_HOST'=>'127.0.0.1',??????
?'DB_NAME'=>'w3note',??????
? 'DB_USER'=>'root',??????
?'DB_PWD'=>'123456',??????
?'DB_PORT'=>'3306',??????
?'DB_PREFIX'=>'w3_',??????
?'DATA_CACHE_TYPE'=>'file',//設(shè)置緩存方式為file??????
?'DATA_CACHE_TIME'=>'600',//緩存周期600秒??????
);??????
?>
Thinkphp緩存函數(shù)的使用
PHP實戰(zhàn)在thinkphp中,我喜歡使用快捷緩存函數(shù)S()進行緩存,其用法如下:
代碼如下:
S('data',$Data);//使用data標識緩存$Data數(shù)據(jù)?
S('data',$Data,600);// 緩存$Data數(shù)據(jù)600秒?
$Data = S('data');// 獲取緩存數(shù)據(jù)?
S('data',NULL);// 刪除緩存數(shù)據(jù)
下面是是前臺項目控制器的完整代碼:
代碼如下:
<?php??????
// 本類由系統(tǒng)自動生成,僅供測試用途??????
?class IndexAction extends Action{??????
?? public function index(){??????
?????? //如果有緩存,則讀取緩存數(shù)據(jù)??????
?????? //如果沒有緩存,則讀取數(shù)據(jù)庫當(dāng)中的數(shù)據(jù)放入緩存??????
?????? $lists=S('lists');????????????????????
?????? if(emptyempty($lists)){??????????????????????????
???????? $news=M('news');??
???????? $lists=$news->select();??
???????? S('lists',$lists,600);??
???????? echo '這是直接讀取數(shù)據(jù)庫的數(shù)據(jù)';??????
????????? }??
?????? dump($list);?
?>
拜訪http://127.0.0.1/Home/index.php/Index/index 輸出,這是直接讀取數(shù)據(jù)庫的數(shù)據(jù):
代碼如下:
array(10) {?
? [0] => array(12) {?
??? ["id"] => string(1) "1"?
??? ["catid"] => string(2) "13"?
??? ["title"] => string(4) "thinkphp的緩存技術(shù)"?
??? ["content"] => string(8) "thinkphp的緩存技術(shù)"?
??? ["tags"] => string(4) "緩存"?
??? ["thumb"] => string(0) ""?
??? ["description"] => string(7) "thinkphp的緩存技術(shù)"?
??? ["inputtime"] => string(10) "1348370202"?
??? ["posid"] => string(1) "1"?
??? ["ord"] => string(1) "2"?
??? ["hits"] => string(1) "1"?
??? ["status"] => string(1) "1"?
}
《PHP應(yīng)用:thinkphp緩存技術(shù)詳解》是否對您有啟發(fā),歡迎查看更多與《PHP應(yīng)用:thinkphp緩存技術(shù)詳解》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/13429.html