为什么要使用缓存技术?理由很简单:提高效率。在程序开发中,获取信息的方式主要是查询数据库,除此以外,也可能是通过Web Services或者别的某种方法,无论哪种方法,在大量的并发访问面前,它们都可能成为效率的瓶颈,为了解决这些问题,人们提出了很多解决方案,其中一些是利用优化软件(如:APC,Eaccelerator,Zend Optimizer等等)来提高程序的运行效率,合理的运用这些软件,往往能使程序的运行效率得到数量级上的提升,但前提是你必须拥主机的控制权,以便能够安装这些软件,如果你使用的是虚拟主机的话,那么只能祈祷你的服务提供商已经预装了某个优化软件,否则就必须自己使用PHP来实现相应的缓存功能。如果这让你感到无所适从,相信下面的文字能给你一些启发。
很多PHP程序员都使用Adodb+Smarty这样的黄金搭档,那么就先看看如何使用它们的缓存功能。
首先看看adodb提供的数据缓存功能:
include(adodb.inc.php); # load code common to ADOdb
$ADODB_CACHE_DIR = /usr/ADODB_cache;
$conn = &ADONewConnection(mysql); # create a connection
$conn->PConnect(‘localhost’,userid’,”,’agora’);# connect to MySQL, agora db
$sql = ’select CustomerName, CustomerID from customers’;
$rs = $conn->CacheExecute(15,$sql);
?>
如上,每次查询数据的时候,会把相应的结果序列化后保存到文件中,以后同样的查询语句就可以不用直接查询数据库,而是从缓存文件中获得。
再来看看Smarty提供的页面缓存功能:
require(Smarty.class.php);
$smarty = new Smarty;
$smarty->caching = true;
if(!$smarty->is_cached(‘index.tpl’)) {
// No cache available, do variable assignments here.
$contents = get_database_contents();
$smarty->assign($contents);
}
$smarty->display(‘index.tpl’);
?>
如上,每次访问页面的时候,都会先检测相应的缓存是否存在,如果不存在,就连接数据库,得到数据,完成模板变量的赋值,显示页面,同时生成缓存文件,这样下次访问的时候缓存文件就发挥作用了,而不会再执行if块的数据查询语句了。当然,在实际使用中会有很多东西要考虑,比如,有效期的设置,缓存组的设置等等,具体可以查看Smarty手册中有关缓存(caching)的相关章节。
以上两个PHP流行组件缓存方式的侧重点是不同的,对于Adodb的缓存而言,它缓存的是数据,对于Smarty的缓存而言,它缓存的是页面。其他提供缓存功能的组件还有很多(如:PEAR::Cache_Lite等等),实际编程中使用哪个方案要具体情况具体分析,也可能会综合使用。
使用这些组件内置的缓存方案有一个很明显的好处是它们的实现对客户端而言都很透明。只要进行必要的设置(如:缓存时间,缓存目录等等)就可以了,而不用过多考虑实现缓存的细节问题,系统会根据设置自动管理缓存。但是其缺点也同样明显,因为每次请求仍然要用PHP解析一遍,效率和纯静态相比还是大打折扣,在大的PV面前还是不能满足要求,在这种情况下,仅仅做动态缓存就不够了,必须实现静态缓存。
分享到:
相关推荐
php缓存技术总结,全静态,部分缓存,数据缓存,查询缓存,内存式缓存,APC缓存,Opcode缓存
很值得一看的php资料 PHP缓存技术详解 PHP缓存技术详解 PHP缓存技术详解PHP缓存技术详解
详解php缓存技术,和大家分享一哈!来自互联网,
PHP缓存技术[总结].pdf
从原理到场景系统讲解PHP缓存技术系列课程.txt
详细介绍php 缓存的使用方法,以及原因等.对php开发中优化很有帮助.
有些信息比方经常不变的,但是还是能变的信息放在缓存中以加快显示速度,这是很有价值的,所谓的缓存,通俗的理解就是一些保存在服务器端的共用信 息.它是于服务器同生死的,我们在保存缓存的时候可以指定下次更新的时间...
PHP缓存,多用于大型网站,缓解网站访问压力。
PHP的缓存与静态化应用,和当今cms主流系统的缓存技术,商城缓存技术,页面静态化生成技术
普遍使用的PHP缓存技术 PHP缓存技术之数据缓存: 这里所说的数据缓存是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结
在实际的应用中,用户使用浏览器浏览Web应用,都是在向Web...而大部分用户的请求都很类似,因需要将PHP脚本执行的结果进行缓存或将其放到静态的HTML文件中。这样,用户在访问时就直接访问静态HTML网页,不执行PHP脚本。
NULL 博文链接:https://m-oyzm.iteye.com/blog/855583
├─ PHP ...│ ├─ 05-PHP 缓存技术 │ ├─ 06-三个水桶等分8升水的问题 -《算法的乐趣》 │ ├─ 07-使用过Redis,我竟然还不知道Rdb │ ├─ 08-我眼中的 RPC │ ├─ 09-Composer 包开发居然这么简单
主要介绍了PHP常用的缓存技术汇总,下面所说的都是在项目中最常用的PHP缓存技术,新手同学收藏起来好好研究吧
Memcache缓存技术,Memcache配置说明及其文件,PHP5.2.6版本内存缓存技术配置,PHP运行环境PHP5.2.6版本的配置,操作系统是windows下
Memcache缓存技术 安装 使用 教程 步骤的讲解
缓存是指临时文件交换区,电脑把最常用的文件... 在WEB开发中用来应付高流量最有效的办法就是用缓存技术,能有效的提高服务器负载性能,用空间换取时间。 互联网也是2 8定论,就像百度搜索中的关键字一样,80%的人所搜