专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » phppear:PEAR教程( 2)--Pear的Cache介绍 »正文

phppear:PEAR教程( 2)--Pear的Cache介绍

来源: 发布时间:星期一, 2009年1月12日 浏览:4次 评论:0
  前面介绍了pear安装今天开始介绍pear几个知名package的如果有不清楚地方请站内搜索“PEAR教程”获取前面教程!

  今天我们要介绍是PEARCache_Lite包做web说到提速眼睛瞪大程度绝不亚于男人见到绝色美女时眼睛所瞪大程度因此我这里第个要介绍就是PEARCache_lite包利用这个package可以根据你需要缓存Cache网页任何个部分从而大大提高了页面生成和载入速度!

  首先去PearList Packages下载Cache_Lite这个安装包写这个教程时候稳定版本是1.7.2所以我们就下载这个版本下载下来后解压缩然后将文件放置在PEAR根目录下(文件目录如何组织后面有介绍)然后我们去manual对应章节看看如何使用那些有关包介绍你可以先看看我们这里没有前戏直接切入主题下面是Cache_Lite::get例子我们就从这个例子入手我在例子中增加了中文注释

require_once"Cache/Lite.php";//这里是相对PEAR地址找到刚才下载包中Lite.php这个文件后你就应该知道如何部署这个文件夹了!
$options=.gif' />(
'cacheDir'=>'/tmp/',//这里是Cache路径最好用绝对路径我们例子中将会有介绍说明
'leTime'=>7200,//缓存Cache失效时间秒为单位
'pearErrorMode'=>CACHE_LITE_ERROR_DIE//报错模式
);
$cache=Cache_Lite($options);//参数设置完的后建立缓存Cache
($data=$cache->get('id_of_the_page')){//如果id=id_of_the_page这个缓存Cache存在则直接将缓存Cache数据echo出来
// Cache hit !
// Content is in $data
// (...)
}{//缓存Cache不存在则生成缓存Cache
// No valid cache found (you have to make and save the page)
// (...)
}


  看了上面这个例子是不是发现很简单?其实缓存Cache关键的处不在于如何生成和删除缓存Cache而在于如何平衡缓存Cache静止和动态关系如何在适当时候重建缓存Cache下面我开始举例让大家体会到缓存Cache好处!,请在tutor(我们教程中例子对应根目录)下建立文件cache*nix操作系统请设置属性为0777然后在tutor文件夹下建立cache.php输入下面代码

< ?php
require_once"config.php";
require_once"Cache/Lite.php";
//下面代码是计算页面执行时间和cache无关
functionget_microtime
  {
    list($usec,$sec)=explode(' ',microtime);
    ((float)$usec+(float)$sec);
  }
$s= get_microtime;
//下面是缓存Cache设置
$options=.gif' />(
  'cacheDir'=> WEB_DIR."/cache/",
    //请在tutor(我们教程中例子对应根目录)
    //下建立文件cache
    //*nix操作系统请设置属性为0777
  'leTime'=>10,//10秒失效时间
  'pearErrorMode'=> CACHE_LITE_ERROR_DIE
);
$cache=Cache_Lite($options);
$cache_id='cache';//id定要唯
//否则会和别人cache出现冲突
($data=$cache->get($cache_id)){
//data是获取数据结果如果缓存Cache存在并且没有过期
//直接取出数据
  echo$data;
}{
  //否则我们建立缓存Cache
  //下面我们故意用循环来耗时
    while($i<10000000)
        $i ;
  $data='缓存Cache建立时间:'.date("Y-m-d H:i:s");
    $data.="<p>没有缓存Cache执行时间是:".(get_microtime-$s)."秒";
  echo$data;
  $cache->save($data);
 
}
echo"<p>当前页面耗时:".(get_microtime-$s)."秒</p>";
?>


  在浏览器中运行http://127.0.0.1/tutor/cache.php然后看看cache目录下是不是生成了个文件很有成就感吧?!

  在web页面我们发现第次运行时间用时大约1秒缓存Cache生成的后用时则只为原来1/1000这样效率就不需要我再多余描述了吧!!其实上面这个例子大体流程是1.建立缓存Cache参数包括缓存CacheID;2.根据参数和ID检查缓存Cache是否存在如果存在则缓存Cache数据被获取在$data变量中然后echo出来否则重新生成缓存Cache将页面结果保存在变量中然后将变量数据写入缓存Cache不过这样方式很不方便所有输出我们必须将其写到个变量中这样其实是比较麻烦要用到很多串连接代码很难维护当然简单cache最好还是建议采用这样方式不过你别担心强大PEAR不会这么弱智所以它也提供了另外种方式其实就是获取缓冲区取出变量方式下面看看这个简单例子对应manual章节在这里

< ?php
require_once"config.php";
require_once"Cache/Lite/Output.php";
//注意这里require文件不样了哦
$options=.gif' />(
  'cacheDir'=> WEB_DIR."/cache/",
  'leTime'=>10,//10秒失效时间
  'pearErrorMode'=> CACHE_LITE_ERROR_DIE
);
$cache=Cache_Lite_Output($options);
$cache_id='obcache';
(!($cache->start($cache_id))){
    //如果不存在则建立缓存Cache存在自动就将缓存Cache输出了
?>


  这里你想干什么就干什么包括执行php,包括数据库查询,只要是php允许都可以在这里完成,是不是很方便呢



< ?php
  $cache->end;//这个千万别忘记了
    //否则缓存Cache永远建立不成功
    //这个就是在出来output buffer
}
?>


  再去看看cache目录下是不是又多了个文件?

  cache就介绍到这里下面有几个需要注意地方:

  1.cacheID定要唯可以将些参数集成进来

  2.cache缓存Cache路径最好写绝对路径

  3.本节重点在于注释请仔细阅读注释

  另外通过我介绍如何删除缓存Cache大家可以去看看对应手册了上面例子在于抛砖引玉如果上面例子你会用了接下缓存Cache操作应该不是难事了



相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: