關(guān)于php緩存技術(shù)的總結(jié)
導(dǎo)語(yǔ):PHP緩存包括PHP編譯緩存和PHP數(shù)據(jù)緩存兩種。下面就由小編為大家介紹一下關(guān)于php緩存技術(shù)的總結(jié),歡迎大家閱讀!
PHP是一種解釋型語(yǔ)言,屬于邊編譯邊運(yùn)行的那種。這種運(yùn)行模式的優(yōu)點(diǎn)是程序修改很方便,但是運(yùn)行效率卻很低下。PHP編譯緩存針對(duì)這種情況做改進(jìn)處理,使得PHP語(yǔ)言只要運(yùn)行一次,就可以把程序的編譯結(jié)果緩存起來(lái)。
PHP緩存包括PHP編譯緩存和PHP數(shù)據(jù)緩存兩種。PHP是一種解釋型語(yǔ)言,屬于邊編譯邊運(yùn)行的那種。這種運(yùn)行模式的優(yōu)點(diǎn)是程序修改很方便,但是運(yùn)行效率卻很低下。
PHP編譯緩存針對(duì)這種情況做改進(jìn)處理,使得PHP語(yǔ)言只要運(yùn)行一次,就可以把程序的編譯結(jié)果緩存起來(lái)。這樣,接下來(lái)的每次運(yùn)行(代碼沒有改變的情況下)都不需要再次編譯了,直接把之前的編譯結(jié)果拿來(lái)使用,比如thinkPHP里面runtime想下的cache文件就是屬于這種。
第一次打開頁(yè)面會(huì)生成php文件,之后打開頁(yè)面,會(huì)發(fā)現(xiàn)文件的修改時(shí)間沒有變,即使用了之前的編譯結(jié)果,不過(guò)當(dāng)更改了代碼之后,這部分php編譯文件還是會(huì)重新生成,這大大提高PHP運(yùn)行速度。PHP數(shù)據(jù)緩存運(yùn)用于PHP實(shí)際開發(fā)之中針對(duì)數(shù)據(jù)處理進(jìn)行緩存,主要兩大方向?yàn)椋横槍?duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行緩存和針對(duì)PHP模板數(shù)據(jù)進(jìn)行緩存。
PHP編譯緩存
PHP是一種解釋型語(yǔ)言,在PHP語(yǔ)言執(zhí)行代碼的時(shí)候,需要下面兩步: 1、編譯過(guò)程。PHP讀取文件,并編譯該文件,然后生成能夠在Zend Engine虛擬機(jī)上執(zhí)行的中間碼。 2、執(zhí)行過(guò)程。PHP直接執(zhí)行中間碼。 以下兩種情況,會(huì)導(dǎo)致PHP運(yùn)行程序代碼效率低下: 1、即使PHP代碼文件沒有發(fā)生改變,也會(huì)被PHP重新編譯。 2、如有引用文件,PHP也要花費(fèi)時(shí)間重新編譯這些被引用的文件。 因此,需要PHP編譯緩存工具對(duì)PHP程序的編譯結(jié)果做緩存處理。這樣,PHP程序只要編譯一次,就不要重新再做無(wú)意義的編譯了。
PHP數(shù)據(jù)緩存
PHP的數(shù)據(jù)緩存包括針對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行緩存(動(dòng)態(tài)緩存)和針對(duì)PHP模板數(shù)據(jù)進(jìn)行緩存(模板層面的靜態(tài)緩存)。針對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行緩存的工具有memcache等。針對(duì)PHP模板數(shù)據(jù)進(jìn)行緩存的工具主要有smarty等。
1、數(shù)據(jù)庫(kù)數(shù)據(jù)緩存技術(shù): 數(shù)據(jù)緩存:這里所說(shuō)的數(shù)據(jù)緩存是指數(shù)據(jù)庫(kù)查詢PHP緩存機(jī)制,每次訪問頁(yè)面的時(shí)候,都會(huì)先檢測(cè)相應(yīng)的緩存數(shù)據(jù)是否存在,如果不存在,就連接數(shù)據(jù)庫(kù),得到數(shù)據(jù),并把查詢結(jié)果序列化后保存到文件中,以后同樣的查詢結(jié)果就直接從緩存表或文件中獲得。 例如使用memcache,每次先在memcache里面進(jìn)行查找,如果發(fā)現(xiàn)相應(yīng)的key值則直接使用,如果沒有則從數(shù)據(jù)庫(kù)里面調(diào)取,同時(shí)更新到memcache里面。
2、頁(yè)面緩存: 每次訪問頁(yè)面的時(shí)候,都會(huì)先檢測(cè)相應(yīng)的緩存頁(yè)面文件是否存在,如果不存在,就重新走控制器,連接數(shù)據(jù)庫(kù),得到數(shù)據(jù),顯示頁(yè)面并同時(shí)生成新的緩存頁(yè)面文件,這樣下次訪問的時(shí)候頁(yè)面文件就就可以直接給予顯示,這種情況下就可以不走控制器。(模板引擎和網(wǎng)上常見的一些PHP緩存機(jī)制類通常有此功能,例如smarty模板、thinkphp框架)
【php緩存技術(shù)的總結(jié)】相關(guān)文章:
php緩存技術(shù)經(jīng)典總結(jié)09-09
PHP緩存技術(shù)10-08
PHP語(yǔ)言中緩存技術(shù)總結(jié)07-28
PHP常用緩存技術(shù)介紹10-21
php頁(yè)面緩存實(shí)現(xiàn)方法07-20
PHP文件緩存的性能測(cè)試11-10