十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
我用你的 代碼測(cè)試了.
創(chuàng)新互聯(lián)公司憑借在網(wǎng)站建設(shè)、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗(yàn),為客戶(hù)提供超值的營(yíng)銷(xiāo)型網(wǎng)站建設(shè)服務(wù),我們始終認(rèn)為:好的營(yíng)銷(xiāo)型網(wǎng)站就是好的業(yè)務(wù)員。我們已成功為企業(yè)單位、個(gè)人等客戶(hù)提供了成都做網(wǎng)站、網(wǎng)站建設(shè)服務(wù),以良好的商業(yè)信譽(yù),完善的服務(wù)及深厚的技術(shù)力量處于同行領(lǐng)先地位。
每次刷新,值都是會(huì)變的.沒(méi)有不改變的情況.
一直刷新了幾十次,都會(huì)改變的.
PHP緩存技術(shù) WEB程序獲取信息的方式主要是查詢(xún)數(shù)據(jù)庫(kù),當(dāng)數(shù)據(jù)庫(kù)不是很大的情況下不會(huì)有太大的問(wèn)題.然而,隨著網(wǎng)站的發(fā)展,數(shù)據(jù)庫(kù)呈幾何級(jí)數(shù)的方式增長(zhǎng)的時(shí)候,就會(huì)出現(xiàn)瓶頸.于是PHP緩存技術(shù)誕生了.PHP緩存技術(shù)工作時(shí),當(dāng)程序查詢(xún)數(shù)據(jù)的時(shí)候,會(huì)把相應(yīng)的結(jié)果序列化后保存到文件中,以后同樣的查詢(xún)語(yǔ)句就可以不用直接查詢(xún)數(shù)據(jù)庫(kù),而是從緩存文件中獲得。這一改進(jìn)使得程序運(yùn)行速度得以太幅度提升.
目前應(yīng)用PHP緩存技術(shù)比較流行的方法主要是Adodb+Smarty這樣的黃金搭檔.
PHP緩存技術(shù)工作原理:
首先看看adodb提供的數(shù)據(jù)緩存功能:
1?php
2include('adodb.inc.php'); # load code common to ADOdb
3$ADODB_CACHE_DIR = '/usr/ADODB_cache';
4$conn = ADONewConnection('mysql'); # create a connection
5$conn-PConnect(' ','userid','','agora');# connect to MySQL, agora db
6$sql = 'select CustomerName, CustomerID from customers';
7$rs = $conn-CacheExecute(15,$sql);
8? 如上,每次查詢(xún)數(shù)據(jù)的時(shí)候,會(huì)把相應(yīng)的結(jié)果序列化后保存到文件中,以后同樣的查詢(xún)語(yǔ)句就可以不用直接查詢(xún)數(shù)據(jù)庫(kù),而是從緩存文件中獲得。
再來(lái)看看Smarty提供的頁(yè)面緩存功能:
1?php
2require('Smarty.class.php');
3$smarty = new Smarty;
4$smarty-caching = true;
5if(!$smarty-is_cached('index.tpl')) {
6 // No cache available, do variable assignments here.
7 $contents = get_database_contents();
8 $smarty-assign($contents);
9}
10$smarty-display('index.tpl');
11?
12
如上,每次訪問(wèn)頁(yè)面的時(shí)候,都會(huì)先檢測(cè)相應(yīng)的緩存是否存在,如果不存在,就連接數(shù)據(jù)庫(kù),得到數(shù)據(jù),完成模板變量的賦值,顯示頁(yè)面,同時(shí)生成緩存文件,這樣下次訪問(wèn)的時(shí)候緩存文件就發(fā)揮作用了,而不會(huì)再執(zhí)行if塊的數(shù)據(jù)查詢(xún)語(yǔ)句了。當(dāng)然,在實(shí)際使用中會(huì)有很多東西要考慮,比如,有效期的設(shè)置,緩存組的設(shè)置等等,具體可以查看Smarty手冊(cè)中有關(guān)緩存(caching)的相關(guān)章節(jié)。
以上兩個(gè)PHP流行組件緩存方式的側(cè)重點(diǎn)是不同的,對(duì)于Adodb的緩存而言,它緩存的是數(shù)據(jù),對(duì)于Smarty的緩存而言,它緩存的是頁(yè)面。其他提供緩存功能的組件還有很多(如:PEAR::Cache_Lite等等),實(shí)際編程中使用哪個(gè)方案要具體情況具體分析,也可能會(huì)綜合使用。
使用這些組件內(nèi)置的緩存方案有一個(gè)很明顯的好處是它們的實(shí)現(xiàn)對(duì)客戶(hù)端而言都很透明。只要進(jìn)行必要的設(shè)置(如:緩存時(shí)間,緩存目錄等等)就可以了,而不用過(guò)多考慮實(shí)現(xiàn)緩存的細(xì)節(jié)問(wèn)題,系統(tǒng)會(huì)根據(jù)設(shè)置自動(dòng)管理緩存。但是其缺點(diǎn)也同樣明顯,因?yàn)槊看握?qǐng)求仍然要用PHP解析一遍,效率和純靜態(tài)相比還是大打折扣,在大的PV面前還是不能滿(mǎn)足要求,在這種情況下,僅僅做動(dòng)態(tài)緩存就不夠了,必須實(shí)現(xiàn)靜態(tài)緩存。
PHP,一門(mén)最近幾年興起的web設(shè)計(jì)腳本語(yǔ)言,由于它的強(qiáng)大和可伸縮性,近幾年來(lái)得到長(zhǎng)足的發(fā)展,php相比傳統(tǒng)的asp網(wǎng)站,在速度上有絕對(duì)的優(yōu)勢(shì),想mssql轉(zhuǎn)6萬(wàn)條數(shù)據(jù)php如需要40秒,asp不下2分鐘.但是,由于網(wǎng)站的數(shù)據(jù)越來(lái)越多,我們渴求能更快速的調(diào)用數(shù)據(jù),不必要每次都從數(shù)據(jù)庫(kù)掉,我們可以從其他的地方,比方一個(gè)文件,或者某個(gè)內(nèi)存地址,這就是php的緩存技術(shù),也就是Cache技術(shù).
file_get_contents() + file_put_contents();
fopen() + fread() + fwrite() + fclose();