PHP由于它的强大和可伸缩性,近几年来得到长足的发展,PHP相比传统的ASP网站,在速度上有绝对的 优势,想mssql转6万条数据PHP如需要40秒,ASP不下2分钟.但是,由于网站的数据越来越多,我们渴求能更快速的调用数据,不必要每次都从数据 库掉,我们可以从其他的地方,比方一个文件,或者某个内存地址,这就是PHP的缓存技术,也就是Cache技术。
分析深入
一般来说,缓存的目的是把数据放在一个地方让访问的更快点,毫无疑问,内存是最快的,但是,几百M的数据能往内存放么?这不现实,当然,有的时 候临时放如服务器缓存,如ob_start()这个缓存页面开启的话在发送文件头之前页面内容都被缓存在内存中,知道等页面输出自动清楚或者等待 ob_get_contents的返回,或者被ob_end_clean显示的清除,这在静态页面的生成中能很好的利用,在模板中能得到很好的体现。
另外,在ASP中有一对象application,可以保存公用的参数,这也算点缓存,但在PHP,我至今没看到开发者产出这种对象,的确,没 必要.ASP.NET的页面缓存技术就用的是viewstate,而cache就是文件关联,(不一定准确),文件被修改,更新缓存,文件没被修改而且不 超时(注释1),就读取缓存,返回结果,就是这个思路,看看这个源码:
<ol class="dp-c"> <li class="alt"><span><span><?PHP </span></span></span></li> <li><span> <span class="keyword">class</span><span> cache{ </span></span></li> <li class="alt"><span> <span class="keyword">private</span><span> </span><span class="vars">$cache_dir</span><span>; </span></span></li> <li><span> <span class="keyword">private</span><span> </span><span class="vars">$expireTime</span><span>=180;</span><span class="comment">//缓存的时间是 60 秒 </span><span> </span></span></li> <li class="alt"><span> <span class="keyword">function</span><span> __construct(</span><span class="vars">$cache_dirname</span><span>){ </span></span></li> <li><span> <span class="keyword">if</span><span>(!@</span><span class="func">is_dir</span><span>(</span><span class="vars">$cache_dirname</span><span>)){ </span></span></li> <li class="alt"><span> <span class="keyword">if</span><span>(!@</span><span class="func">mkdir</span><span>(</span><span class="vars">$cache_dirname</span><span>,0777)){ </span></span></li> <li><span> <span class="vars">$this</span><span>->warn(</span><span class="string">'缓存文件不存在而且不能创建,需要手动创建.'</span><span>); </span></span></li> <li class="alt"><span> <span class="keyword">return</span><span> false; </span></span></li> <li><span> } </span></li> <li class="alt"><span> } </span></li> <li><span> <span class="vars">$this</span><span>->cache_dir = </span><span class="vars">$cache_dirname</span><span>; </span></span></li> <li class="alt"><span> } </span></li> <li><span> <span class="keyword">function</span><span> __destruct(){ </span></span></li> <li class="alt"><span> <span class="func">echo</span><span> </span><span class="string">'Cache class bye.'</span><span>; </span></span></li> <li><span> } </span></li> <li class="alt"><span> </span></li> <li><span> <span class="keyword">function</span><span> get_url() { </span></span></li> <li class="alt"><span> <span class="keyword">if</span><span> (!isset(</span><span class="vars">$_SERVER</span><span>[</span><span class="string">'REQUEST_URI'</span><span>])) { </span></span></li> <li><span> <span class="vars">$url</span><span> = </span><span class="vars">$_SERVER</span><span>[</span><span class="string">'REQUEST_URI'</span><span>]; </span></span></li> <li class="alt"><span> }<span class="keyword">else</span><span>{ </span></span></li> <li><span> <span class="vars">$url</span><span> = </span><span class="vars">$_SERVER</span><span>[</span><span class="string">'SCRIPT_NAME'</span><span>]; </span></span></li> <li class="alt"><span> <span class="vars">$url</span><span> .= (!emptyempty(</span><span class="vars">$_SERVER</span><span>[</span><span class="string">'QUERY_STRING'</span><span>])) ? </span><span class="string">'?'</span><span> . </span><span class="vars">$_SERVER</span><span>[</span><span class="string">'QUERY_STRING'</span><span>] : </span><span class="string">''</span><span>; </span></span></li> <li><span> } </span></li> <li class="alt"><span> </span></li> <li><span> <span class="keyword">return</span><span> </span><span class="vars">$url</span><span>; </span></span></li> <li class="alt"><span> } </span></li> <li><span> <span class="keyword">function</span><span> warn(</span><span class="vars">$errorstring</span><span>){ </span></span></li> <li class="alt"><span> <span class="func">echo</span><span> </span><span class="string">"<b><font>发生错误:<pre class="brush:php;toolbar:false">".$errorstring." ";

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版
好用的JavaScript開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版
視覺化網頁開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。