關於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中iconv函數知識
iconv函數庫能夠完成各種字符集間的轉換,是php編程中不可缺少的基礎函數庫。下面是小編為大家蒐集整理出來的有關於PHP中iconv函數知識,有需要的小夥伴可以參考下。今天在修改論文在線的時候,遇到了iconv這個函數。學習一下1234header('Content-Type:applicat...
-
PHP中閉包的一些常見問題
PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的數據庫以及操作系統。最重要的是PHP可以用C、C++進行程序的擴展!以下是小編為大家搜索整理的PHP中閉包的一些常見問題,希望能給大家帶來幫助!更多精彩內容請持續關注我們應屆畢業生考試...
-
PHP 7.1中都有哪些重大更新
PHP7.1.0帶來了大量的改進和新功能:可空類型返回空類型可迭代的psuedo-type支持常量可見的類數組解構square框架和在list()中允許指定keys多異常類型捕獲,以下是小編為大家搜索整理的PHP7.1中都有哪些重大更新,希望能給大家帶來幫助!更多精彩內容請及時關注我們應...
-
php多個文件及圖片上傳實例詳解
主要介紹了php多個文件及圖片上傳的方法,以實例形式詳細敍述了多文件上傳的原理與實現技巧,非常實用,需要的朋友可以參考下。本文實例講述了php多個文件及圖片上傳的方法。分享給大家供大家參考。具體實現方法如下:多個文件上傳是在單文件上傳的基礎上利用遍歷...