PHP常用緩存技術的總結

1、全頁面靜態化緩存:將頁面全部生成爲HTML靜態頁面,用戶訪問時直接訪問靜態頁面,不走PHP服務器的解析流程。此種方式在CMS系統中比較常見,如dedecms。
實現方法:輸出緩存
ob_start()--打開“輸出控制緩衝”;
some code --要運行的代碼;
$content=ob_get_contents()--返回“輸出緩衝區的內容”;
some code --使用file_put_contents()等函數將返回的數據寫入HTML文件;
ob_clearn()--清空“輸出緩衝區”;

2、頁面部分緩存:將頁面中不常變動的部分進行靜態化緩存,而經常變化的部分不緩存,最後組裝在一起顯示;可以使用類似ob_get_contents()的方式實現,也可以利用類似ESI之類的頁面片段緩存策略,使其用來做動態頁面中相對靜態的片段部分的緩存。該緩存方式常用與商城中的商品頁。

3、數據緩存:緩存數據的一種方式。比如,商城中的某個商品信息,當用商品id去請求時,就會得出包括店鋪信息、商品信息等數據,此時就可以將這些 數據緩存到一個php文件中,文件名包含商品id來建一個唯一標示;下一次有人想查看這個商品時,首先就直接調這個文件裏面的信息,而不用再去數據庫查 詢;其實緩存文件中緩存的就是一個php數組之類;Ecmall商城系統裏面就用了這種方式;

4、查詢緩存:根據查詢來進行緩存。將查詢得到的數據緩存在一個文件中,下次遇到相同的查詢時,就直接先從這個文件裏面調數據,不再去查數據庫;但此處的緩存文件名可能就需要以查詢語句爲基點來建立唯一標示.

注意:以上幾種緩存方式都需要對緩存的文件設置一個有效時間,在這個時間內,相同的訪問會先取緩存文件的內容,超過有效時間後就重新從數據庫中獲取數據,並生成新的緩存文件。

5、內存式緩存:使用redis,memcached等nosql數據庫設置PHP緩存,通過緩存查詢結果,來減少數據庫的訪問次數,從而提高網站的響應速度。

6、apache緩存模塊:apache安裝完以後,是不允許被cache的。如果外接了cache或squid服務器要求進行web加速的話,就需要在htttpd.conf裏進行設置,當然前提是在安裝apache的時候要激活mod_cache的模塊。
安裝apache時:./configure –enable-cache –enable-disk-cache –enable-mem-cache

7、PHP APC緩存擴展:使用PHP中的APC擴展來進行緩存

8、Opcode:首先php代碼被解析爲Tokens,然後再編譯爲Opcode碼,最後執行Opcode碼,返回結果;所以,對於相同的php文件,第一次運行時 可以緩存其Opcode碼,下次再執行這個頁面時,直接會去找到緩存下的opcode碼,直接執行最後一步,而不再需要中間的步驟了。比較知名的是XCache、Turck MM Cache、PHP Accelerator等。關於PHP Opcode,鳥哥的博客中有一篇詳解:http://www.laruence.com/2008/06/18/221.html
發佈了48 篇原創文章 · 獲贊 5 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章