| 订阅 | 在线投稿
分享
 
 
当前位置: 王朝网络 >> other >> PEAR教程(二)--Pear的Cache介绍
 

PEAR教程(二)--Pear的Cache介绍

2008-12-28 07:39:31 编辑來源:互联网 繁體版 评论
 
 
  前面介绍了pear的安装,今天开始介绍pear的几个知名的package之一,如果有不清楚的地方请站内搜索“PEAR教程”获取前面的教程!

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

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

  require_once"Cache/Lite.php";//这里是相对PEAR的地址,找到刚才下载的包中Lite.php这个文件后你就应该知道如何部署这个文件夹了!

  $options=array(

  'cacheDir'=>'/tmp/',//这里是Cache的路径,最好用绝对路径,我们的例子中将会有说明

  'lifeTime'=>7200,//缓存的失效时间,秒为单位

  'pearErrorMode'=>CACHE_LITE_ERROR_DIE//报错模式

  );

  $cache=newCache_Lite($options);//参数设置完之后建立缓存

  if($data=$cache->get('id_of_the_page')){//如果id=id_of_the_page这个缓存存在的话,则直接将缓存数据echo出来

  // Cache hit !

  // Content is in $data

  // (...)

  }else{//缓存不存在,则生成缓存

  // No valid cache found (you have to make and save the page)

  // (...)

  }

  看了上面的这个例子,是不是发现很简单?其实缓存的关键之处不在于如何生成和删除缓存,而在于如何平衡缓存静止和动态的关系,如何在适当的时候重建缓存。下面我开始举例,让大家体会到缓存的好处!,请在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());

   return((float)$usec+(float)$sec);

   }

  $s= get_microtime();

  //下面是缓存的设置

  $options=array(

   'cacheDir'=> WEB_DIR."/cache/",

   //请在tutor(我们教程中的例子对应的根目录)

   //下建立文件cache,

   //*nix操作系统请设置属性为0777

   'lifeTime'=>10,//10秒失效时间

   'pearErrorMode'=> CACHE_LITE_ERROR_DIE

  );

  $cache=newCache_Lite($options);

  $cache_id='cache';//id一定要唯一

  //否则会和别人的cache出现冲突

  if($data=$cache->get($cache_id)){

  //data是获取数据的结果,如果缓存存在并且没有过期,

  //直接取出数据

   echo$data;

  }else{

   //否则我们建立缓存

   //下面我们故意用循环来耗时

   while($i<10000000)

   $i++ ;

   $data='缓存建立的时间:'.date("Y-m-d H:i:s");

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

  < ?php

  require_once"config.php";

  require_once"Cache/Lite/Output.php";

  //注意,这里require的文件不一样了哦

  $options=array(

   'cacheDir'=> WEB_DIR."/cache/",

   'lifeTime'=>10,//10秒失效时间

   'pearErrorMode'=> CACHE_LITE_ERROR_DIE

  );

  $cache=newCache_Lite_Output($options);

  $cache_id='obcache';

  if(!($cache->start($cache_id))){

   //如果不存在,则建立缓存,存在的话,程序自动就将缓存输出了

  ?>

  这里你想干什么就干什么,

  包括执行php

  包括数据库查询

  只要是php允许的都可以在这里完成

  是不是很方便呢

  < ?php

   $cache->end();//这个千万别忘记了,

   //否则缓存永远建立不成功,

   //这个函数就是在出来output buffer

  }

  ?>

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

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

  1.cache的ID一定要唯一,可以将一些参数集成进来

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

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

  另外,通过我的介绍,如何删除缓存大家可以去看看对应的手册了,上面的例子在于抛砖引玉,如果上面的例子你会用了,接下的缓存操作应该不是难事了。
 
 
 
 
上一篇《curl函数的中文档案》
下一篇《PEAR教程(一)--Pear的介绍和安装》
 
 
 
 
 
 
 
 
 
日版宠物情人插曲《Winding Road》歌词

日版宠物情人2017的插曲,很带节奏感,日语的,女生唱的。 最后听见是在第8集的时候女主手割伤了,然后男主用嘴帮她吸了一下,插曲就出来了。 歌手:Def...

兄弟共妻,我成了他们夜里的美食

老钟家的两个儿子很特别,就是跟其他的人不太一样,魔一般的执着。兄弟俩都到了要结婚的年龄了,不管自家老爹怎么磨破嘴皮子,兄弟俩说不娶就不娶,老父母为兄弟两操碎了心...

如何磨出破洞牛仔裤?牛仔裤怎么剪破洞?

把牛仔裤磨出有线的破洞 1、具体工具就是磨脚石,下面垫一个硬物,然后用磨脚石一直磨一直磨,到把那块磨薄了,用手撕开就好了。出来的洞啊很自然的。需要猫须的话调几...

我就是扫描下图得到了敬业福和爱国福

先来看下敬业福和爱国福 今年春节,支付宝再次推出了“五福红包”活动,表示要“把欠大家的敬业福都还给大家”。 今天该活动正式启动,和去年一样,需要收集“五福”...

冰箱异味产生的原因和臭味去除的方法

有时候我们打开冰箱就会闻到一股异味,冰箱里的这种异味是因为一些物质发出的气味的混合体,闻起来让人恶心。 产生这些异味的主要原因有以下几点。 1、很多人有这种习...

 
 
 
前面介绍了pear的安装,今天开始介绍pear的几个知名的package之一,如果有不清楚的地方请站内搜索“PEAR教程”获取前面的教程! 今天我们要介绍的是PEAR的Cache_Lite包,做web的说到提速眼睛瞪大的程度绝不亚于男人见到绝色美女时眼睛所瞪大的程度,因此,我这里第一个要介绍的就是PEAR的Cache_lite包,利用这个package可以根据你的需要缓存网页的任何一个部分,从而大大的提高了页面的生成和载入速度! 首先去Pear的List Packages下载Cache_Lite这个安装包,写这个教程的时候,稳定的版本是1.7.2,所以我们就下载这个版本,下载下来后解压缩,然后将文件放置在PEAR的根目录下(文件目录如何组织,后面有介绍),然后我们去manual对应的章节看看如何使用。那些关于包的介绍你可以先看看,我们这里没有前戏,直接切入主题,下面是Cache_Lite::get()的例子。我们就从这个例子入手,我在例子中增加了中文的注释 require_once"Cache/Lite.php";//这里是相对PEAR的地址,找到刚才下载的包中Lite.php这个文件后你就应该知道如何部署这个文件夹了! $options=array( 'cacheDir'=>'/tmp/',//这里是Cache的路径,最好用绝对路径,我们的例子中将会有说明 'lifeTime'=>7200,//缓存的失效时间,秒为单位 'pearErrorMode'=>CACHE_LITE_ERROR_DIE//报错模式 ); $cache=newCache_Lite($options);//参数设置完之后建立缓存 if($data=$cache->get('id_of_the_page')){//如果id=id_of_the_page这个缓存存在的话,则直接将缓存数据echo出来 // Cache hit ! // Content is in $data // (...) }else{//缓存不存在,则生成缓存 // No valid cache found (you have to make and save the page) // (...) } 看了上面的这个例子,是不是发现很简单?其实缓存的关键之处不在于如何生成和删除缓存,而在于如何平衡缓存静止和动态的关系,如何在适当的时候重建缓存。下面我开始举例,让大家体会到缓存的好处!,请在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()); return((float)$usec+(float)$sec); } $s= get_microtime(); //下面是缓存的设置 $options=array( 'cacheDir'=> WEB_DIR."/cache/", //请在tutor(我们教程中的例子对应的根目录) //下建立文件cache, //*nix操作系统请设置属性为0777 'lifeTime'=>10,//10秒失效时间 'pearErrorMode'=> CACHE_LITE_ERROR_DIE ); $cache=newCache_Lite($options); $cache_id='cache';//id一定要唯一 //否则会和别人的cache出现冲突 if($data=$cache->get($cache_id)){ //data是获取数据的结果,如果缓存存在并且没有过期, //直接取出数据 echo$data; }else{ //否则我们建立缓存 //下面我们故意用循环来耗时 while($i<10000000) $i++ ; $data='缓存建立的时间:'.date("Y-m-d H:i:s"); $data.="<p>没有缓存执行的时间是:".(get_microtime()-$s)."秒"; echo$data; $cache->save($data); } echo"<p>当前页面耗时:".(get_microtime()-$s)."秒</p>"; ?> 在浏览器中运行[url=http://127.0.0.1/tutor/cache.php]http://127.0.0.1/tutor/cache.php[/url],然后看看cache的目录下是不是生成了一个文件,很有成就感吧?! 在web页面我们发现第一次运行的时间用时大约1秒,缓存生成之后用时则只为原来的1/1000,这样的效率就不需要我再多余描述了吧!!其实上面这个例子的大体流程是,1.建立缓存参数,包括缓存的ID;2.根据参数和ID检查缓存是否存在,如果存在,则缓存数据被获取在$data变量中,然后echo出来,否则重新生成缓存,将页面的结果保存在变量中,然后将变量的数据写入缓存。不过这样的方式很不方便,因为所有的输出我们必须将其写到一个变量中,这样其实是比较麻烦的,要用到很多字符串连接,代码很难维护,当然简单的cache最好还是建议采用这样的方式。不过你别担心,强大的PEAR不会这么弱智的,所以它也提供了另外一种方式,其实就是获取缓冲区取出变量的方式,下面看看这个简单的例子,对应的manual章节在这里。 < ?php require_once"config.php"; require_once"Cache/Lite/Output.php"; //注意,这里require的文件不一样了哦 $options=array( 'cacheDir'=> WEB_DIR."/cache/", 'lifeTime'=>10,//10秒失效时间 'pearErrorMode'=> CACHE_LITE_ERROR_DIE ); $cache=newCache_Lite_Output($options); $cache_id='obcache'; if(!($cache->start($cache_id))){ //如果不存在,则建立缓存,存在的话,程序自动就将缓存输出了 ?> 这里你想干什么就干什么, 包括执行php 包括数据库查询 只要是php允许的都可以在这里完成 是不是很方便呢 < ?php $cache->end();//这个千万别忘记了, //否则缓存永远建立不成功, //这个函数就是在出来output buffer } ?> 再去看看cache的目录下是不是又多了一个文件? cache就介绍到这里,下面有几个需要注意的地方: 1.cache的ID一定要唯一,可以将一些参数集成进来 2.cache的缓存路径最好写绝对路径 3.本节的重点在于注释,请仔细阅读注释 另外,通过我的介绍,如何删除缓存大家可以去看看对应的手册了,上面的例子在于抛砖引玉,如果上面的例子你会用了,接下的缓存操作应该不是难事了。
󰈣󰈤
 
 
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
时尚性感的燕子(3)
时尚性感的燕子(2)
纯美的女生生活写真(14)
纯美的女生生活写真(13)
来自束河[]
恰巧-巧家~~
高尔夫
行摄匆匆天子山
 
>>返回首页<<
 为你推荐
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 热帖排行
 
 
 
 
©2005- 王朝网络 版权所有