詳細(xì)講解PHP中緩存技術(shù)的應(yīng)用
PHP,一門最近幾年興起的web設(shè)計腳本語言,由于它的強(qiáng)大和可伸縮性,近幾年來得到長足的發(fā)展,php相比傳統(tǒng)的asp網(wǎng)站,在速度上有的優(yōu)勢,想mssql轉(zhuǎn)6萬條數(shù)據(jù)php如需要40秒,asp不下2分鐘.但是,由于網(wǎng)站的數(shù)據(jù)越來越多,我們渴求能更快速的調(diào)用數(shù)據(jù),不必要每次都從數(shù)據(jù)庫掉,我們可以從其他的地方,比方一個文件,或者某個內(nèi)存地址,這是php的緩存技術(shù),也是Cache技術(shù).
一般來說,緩存的目的是把數(shù)據(jù)放在一個地方讓訪問的更快點,毫無疑問,內(nèi)存是最快的,但是,幾百M的數(shù)據(jù)能往內(nèi)存放么?這不現(xiàn)實,當(dāng)然,有的時候臨時放如服務(wù)器緩存,如ob_start()這個緩存頁面開啟的話在發(fā)送文件頭之前頁面內(nèi)容都被緩存在內(nèi)存中,知道等頁面輸出自動清楚或者等待ob_get_contents的返回,[或者被ob_end_clean顯示的,這在靜態(tài)頁面的生成中能很好的利用,在模板中能得到很好的體現(xiàn),我的這篇文章深入的討論了:
談PHP生成靜態(tài)頁面,這是一種方式,但這是臨時性的,不是解決我們問題的好方法.
另外,在asp中有一對象application,可以保存公用的參數(shù),這也算點緩存,但在php,我至今沒看到開發(fā)者產(chǎn)出這種對象,的確,沒必要.asp.net的頁面緩存技術(shù)用的是viewstate,而cache是文件關(guān)聯(lián),(不一定準(zhǔn)確),文件被修改,更新緩存,文件沒被修改而且不超時(注釋1),讀取緩存,返回結(jié)果,是這個思路,看看這個源碼: