PHP快取技術

PHP快取包括PHP編譯快取和PHP數據快取兩種。PHP是一種解釋型語言,屬於邊編譯邊運行的那種。這種運行模式的優點是程式修改很方便,但是運行效率卻很低下。PHP編譯快取針對這種情況做改進處理,使得PHP語言只要運行一次,就可以把程式的編譯結果快取起來。

簡介

PHP快取包括PHP編譯快取和PHP數據快取兩種。PHP是一種解釋型語言,屬於邊編譯邊運行的那種。這種運行模式的優點是程式修改很方便,但是運行效率卻很低下。PHP編譯快取針對這種情況做改進處理,使得PHP語言只要運行一次,就可以把程式的編譯結果快取起來。這樣,接下來的每次運行都不需要再次編譯了,這大大提高PHP運行速度。PHP數據快取運用於PHP實際開發之中針對數據處理進行快取,主要兩大方向為:針對資料庫數據進行快取和針對PHP模板數據進行快取。

PHP編譯快取

目前最常見的PHP編譯快取工具有:APC,Accelerator,xcache(國產)等。

PHP是一種解釋型語言,在PHP語言執行代碼的時候,需要下面兩步:

1、編譯過程。PHP讀取檔案,並編譯該檔案,然後生成能夠在Zend Engine虛擬機上執行的中間碼。

2、執行過程。PHP直接執行中間碼。

以下兩種情況,會導致PHP運行程式代碼效率低下:

1、即使PHP代碼檔案沒有發生改變,也會被PHP重新編譯。

2、如有引用檔案,PHP也要花費時間重新編譯這些被引用的檔案。

因此,需要PHP編譯快取工具對PHP程式的編譯結果做快取處理。這樣,PHP程式只要編譯一次,就不要重新再做無意義的編譯了。

PHP數據快取

PHP的數據快取包括針對資料庫數據進行快取和針對PHP模板數據進行快取。針對資料庫數據進行快取的工具有memcache等。針對PHP模板數據進行快取的工具主要有smarty等。

PHP快取類型

1、資料庫數據快取技術:

數據快取:這裡所說的數據快取是指資料庫查詢PHP快取機制,每次訪問頁面的時候,都會先檢測相應的快取數據是否存在,如果不存在,就連線資料庫,得到數據,並把查詢結果序列化後保存到檔案中,以後同樣的查詢結果就直接從快取表或檔案中獲得。

用的最廣的例子看Discuz的搜尋功能,把結果ID快取到一個表中,下次搜尋相同關鍵字時先搜尋快取表。和memcache技術。

舉個常用的方法,多表關聯的時候,把附表中的內容生成數組保存到主表的一個欄位中,需要的時候數組分解一下,這樣的好處是唯讀一個表,壞處就是兩個數據同步會多不少步驟,資料庫永遠是瓶頸,用硬碟換速度,是這個的關鍵點。

常用的資料庫數據快取技術有:

1.序列化(串列化)快取

2.JSON快取

3.XML快取

4.Array快取

2、頁面快取:

每次訪問頁面的時候,都會先檢測相應的快取頁面檔案是否存在,如果不存在,就連線資料庫,得到數據,顯示頁面並同時生成快取頁面檔案,這樣下次訪問的時候頁面檔案就發揮作用了。(模板引擎和網上常見的一些PHP快取機制類通常有此功能,例如smarty模板、thinkphp框架)

技術特點

1、時間觸發快取:

檢查檔案是否存在並且時間戳小於設定的過期時間,如果檔案修改的時間戳比當前時間戳減去過期時間戳大,那么就用快取,否則更新快取。

2、內容觸發快取:

當插入數據或更新數據時,強制更新PHP快取機制。

3、靜態快取:

這裡所說的靜態快取是指靜態化,直接生成HTML或XML等文本檔案,有更新的時候重生成一次,適合於不太變化的頁面,這就不說了。。

相關詞條

相關搜尋

熱門詞條

聯絡我們