- 相關(guān)推薦
PHP常用緩存技術(shù)介紹
最近小編喜歡上了PHP,下面就和大家一起來分享一下我知道的內(nèi)容。更多內(nèi)容請關(guān)注應(yīng)屆畢業(yè)生網(wǎng)!
PHP緩存包括PHP編譯緩存和PHP數(shù)據(jù)緩存兩種。PHP是一種解釋型語言,屬于邊編譯邊運(yùn)行的那種。這種運(yùn)行模式的優(yōu)點(diǎn)是程序修改很方便,但是運(yùn)行效率卻很低下。PHP編譯緩存針對這種情況做改進(jìn)處理,使得PHP語言只要運(yùn)行一次,就可以把程序的編譯結(jié)果緩存起來。這樣,接下來的每次運(yùn)行都不需要再次編譯了,這大大提高PHP運(yùn)行速度。PHP數(shù)據(jù)緩存運(yùn)用于PHP實(shí)際開發(fā)之中針對數(shù)據(jù)處理進(jìn)行緩存,主要兩大方向?yàn)椋横槍?shù)據(jù)庫數(shù)據(jù)進(jìn)行緩存和針對PHP模板數(shù)據(jù)進(jìn)行緩存。
數(shù)據(jù)緩存
這里所說的數(shù)據(jù)緩存是指數(shù)據(jù)庫查詢緩存,每次訪問頁面的時(shí)候,都會(huì)先檢測相應(yīng)的緩存數(shù)據(jù)是否存在,如果不存在,就連接數(shù)據(jù)庫,得到數(shù)據(jù),并把查詢結(jié) 果序列化后保存到文件
中,以后同樣的查詢結(jié)果就直接從緩存文件中獲得。
頁面緩存
每次訪問頁面的時(shí)候,都會(huì)先檢測相應(yīng)的緩存頁面文件是否存在,如果不存在,就連接數(shù)據(jù)庫,得到數(shù)據(jù),顯示頁面并同時(shí)生成緩存頁面文件,這樣下次訪問 的時(shí)候頁面文件就發(fā)揮作用了。(模板引擎和網(wǎng)上常見的一些緩存類通常有此功能)
1、全頁面靜態(tài)化緩存
將頁面全部生成html靜態(tài)頁面,用戶訪問時(shí)直接訪問的靜態(tài)頁面,而不會(huì)去走php服務(wù)器解析的流程。
2、頁面部分緩存
該種方式,是將一個(gè)頁面中不經(jīng)常變的部分進(jìn)行靜態(tài)緩存,而經(jīng)常變化的塊不緩存,最后組裝在一起顯示;可以使用類似于ob_get_contents的方式實(shí)現(xiàn),也可以利用類似ESI之類的頁面片段緩存策略,使其用來做動(dòng)態(tài)頁面中相對靜態(tài)的片段部分的緩存。
內(nèi)存緩存
Memcached是高性能的,分布式的內(nèi)存對象緩存系統(tǒng),用于在動(dòng)態(tài)應(yīng)用中減少數(shù)據(jù)庫負(fù)載,提升訪問速度。
dbcached 是一款基于 Memcached 和 NMDB 的分布式 key-value 數(shù)據(jù)庫內(nèi)存緩存系統(tǒng)。
以上的緩存技術(shù)雖然能很好的解決頻繁查詢數(shù)據(jù)庫的問題,但其缺點(diǎn)在在于數(shù)據(jù)無時(shí)效性。
更新緩存
1、時(shí)間觸發(fā)緩存
檢查文件是否存在并且時(shí)間戳小于設(shè)置的過期時(shí)間,如果文件修改的時(shí)間戳比當(dāng)前時(shí)間戳減去過期時(shí)間戳大,那么就用緩存,否則更新緩存。
設(shè)定時(shí)間內(nèi)不去判斷數(shù)據(jù)是否要更新,過了設(shè)定時(shí)間再更新緩存。
2、內(nèi)容觸發(fā)緩存
當(dāng)插入數(shù)據(jù)或更新數(shù)據(jù)時(shí),強(qiáng)制更新緩存。
【PHP常用緩存技術(shù)介紹】相關(guān)文章:
PHP緩存技術(shù)10-08
php緩存技術(shù)經(jīng)典總結(jié)09-09
php-smarty模版引擎中的緩存應(yīng)用04-23
PHP簡單介紹09-29
PHP常量介紹05-27
PHP變量介紹02-28
最新PHP技術(shù)筆試題09-10