background image

深入探讨 PHP 缓存技术

PHP,一门最近几年兴起的 Web 设计脚本语言,由于它的强大和可伸缩性,近几年来得

到长足的发展,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),就读取缓存,返回结果,就是这个思路,看看这个源码:

 

  <?php

  class cache{

  /*

  Class Name: cache

  Description: control to cache data,$cache_out_time is a array to save cache date time 

out.

  Version: 1.0

  Author: 

 

老农 cjjer

  Last modify:2006-2-26

  Author URL: http://www.cjjer.com

  */

  private $cache_dir;

  private $expireTime=180;//

 

缓存的时间是 60 秒