糯米文學吧

位置:首頁 > 計算機 > php語言

關於php緩存技術的總結

php語言3.16W

導語:PHP緩存包括PHP編譯緩存和PHP數據緩存兩種。下面就由小編為大家介紹一下關於php緩存技術的總結,歡迎大家閲讀

關於php緩存技術的總結

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

PHP緩存包括PHP編譯緩存和PHP數據緩存兩種。PHP是一種解釋型語言,屬於邊編譯邊運行的那種。這種運行模式的優點是程序修改很方便,但是運行效率卻很低下。

PHP編譯緩存針對這種情況做改進處理,使得PHP語言只要運行一次,就可以把程序的編譯結果緩存起來。這樣,接下來的每次運行(代碼沒有改變的情況下)都不需要再次編譯了,直接把之前的編譯結果拿來使用,比如thinkPHP裏面runtime想下的cache文件就是屬於這種。

第一次打開頁面會生成php文件,之後打開頁面,會發現文件的修改時間沒有變,即使用了之前的編譯結果,不過當更改了代碼之後,這部分php編譯文件還是會重新生成,這大大提高PHP運行速度。PHP數據緩存運用於PHP實際開發之中針對數據處理進行緩存,主要兩大方向為:針對數據庫數據進行緩存和針對PHP模板數據進行緩存。

  PHP編譯緩存

PHP是一種解釋型語言,在PHP語言執行代碼的時候,需要下面兩步: 1、編譯過程。PHP讀取文件,並編譯該文件,然後生成能夠在Zend Engine虛擬機上執行的中間碼。 2、執行過程。PHP直接執行中間碼。 以下兩種情況,會導致PHP運行程序代碼效率低下: 1、即使PHP代碼文件沒有發生改變,也會被PHP重新編譯。 2、如有引用文件,PHP也要花費時間重新編譯這些被引用的文件。 因此,需要PHP編譯緩存工具對PHP程序的編譯結果做緩存處理。這樣,PHP程序只要編譯一次,就不要重新再做無意義的編譯了。

  PHP數據緩存

PHP的數據緩存包括針對數據庫數據進行緩存(動態緩存)和針對PHP模板數據進行緩存(模板層面的靜態緩存)。針對數據庫數據進行緩存的工具有memcache等。針對PHP模板數據進行緩存的工具主要有smarty等。

1、數據庫數據緩存技術: 數據緩存:這裏所説的數據緩存是指數據庫查詢PHP緩存機制,每次訪問頁面的時候,都會先檢測相應的'緩存數據是否存在,如果不存在,就連接數據庫,得到數據,並把查詢結果序列化後保存到文件中,以後同樣的查詢結果就直接從緩存表或文件中獲得。 例如使用memcache,每次先在memcache裏面進行查找,如果發現相應的key值則直接使用,如果沒有則從數據庫裏面調取,同時更新到memcache裏面。

2、頁面緩存: 每次訪問頁面的時候,都會先檢測相應的緩存頁面文件是否存在,如果不存在,就重新走控制器,連接數據庫,得到數據,顯示頁面並同時生成新的緩存頁面文件,這樣下次訪問的時候頁面文件就就可以直接給予顯示,這種情況下就可以不走控制器。(模板引擎和網上常見的一些PHP緩存機制類通常有此功能,例如smarty模板、thinkphp框架)

標籤:PHP 緩存 技術