PHP缓存技术

php中文网
发布: 2016-06-23 14:32:15
原创
852人浏览过

为什么要使用缓存技术?理由很简单:提高效率。在程序开发中,获取信息的方式主要是查询数据库,除此以外,也可能是通过Web Services或者别的某种方法,无论哪种方法,在大量的并发访问面前,它们都可能成为效率的瓶颈,为了解决这些问题,人们提出了很多解决方案,其中一些是利用优化软件(如:APC,Eaccelerator,Zend Optimizer等等)来提高程序的运行效率,合理的运用这些软件,往往能使程序的运行效率得到数量级上的提升,但前提是你必须拥主机的控制权,以便能够安装这些软件,如果你使用的是虚拟主机的话,那么只能祈祷你的服务提供商已经预装了某个优化软件,否则就必须自己使用PHP来实现相应的缓存功能。如果这让你感到无所适从,相信下面的文字能给你一些启发。
很多PHP程序员都使用Adodb+Smarty这样的黄金搭档,那么就先看看如何使用它们的缓存功能。
首先看看adodb提供的数据缓存功能:

1 php     
2 include ( ' adodb.inc.php ' );  #  load code common to ADOdb     
3 $ADODB_CACHE_DIR   =   ' /usr/ADODB_cache ' ;     
4 $conn   =   & ADONewConnection( ' mysql ' );  #  create a connection     
5 $conn -> PConnect( ' localhost ' , ' userid ' , '' , ' agora ' ); #  connect to MySQL, agora db     
6 $sql   =   ' select CustomerName, CustomerID from customers ' ;     
7 $rs   =   $conn -> CacheExecute( 15 , $sql );     
8 ?>  

如上,每次查询数据的时候,会把相应的结果序列化后保存到文件中,以后同样的查询语句就可以不用直接查询数据库,而是从缓存文件中获得。
再来看看Smarty提供的页面缓存功能:

 1 php     
 2 require ( ' Smarty.class.php ' );     
 3 $smarty   =   new  Smarty;     
 4 $smarty -> caching  =   true ;     
 5 if ( ! $smarty -> is_cached( ' index.tpl ' )) {     
 6      //  No cache available, do variable assignments here.     
 7      $contents   =  get_database_contents();     
 8      $smarty -> assign( $contents );     
 9 }     
10 $smarty -> display( ' index.tpl ' );     
11 ?>      
12


如上,每次访问页面的时候,都会先检测相应的缓存是否存在,如果不存在,就连接数据库,得到数据,完成模板变量的赋值,显示页面,同时生成缓存文件,这样下次访问的时候缓存文件就发挥作用了,而不会再执行if块的数据查询语句了。当然,在实际使用中会有很多东西要考虑,比如,有效期的设置,缓存组的设置等等,具体可以查看smarty手册中有关缓存(caching)的相关章节。
以上两个php流行组件缓存方式的侧重点是不同的,对于adodb的缓存而言,它缓存的是数据,对于smarty的缓存而言,它缓存的是页面。其他提供缓存功能的组件还有很多(如:pear::cache_lite等等),实际编程中使用哪个方案要具体情况具体分析,也可能会综合使用。
使用这些组件内置的缓存方案有一个很明显的好处是它们的实现对客户端而言都很透明。只要进行必要的设置(如:缓存时间,缓存目录等等)就可以了,而不用过多考虑实现缓存的细节问题,系统会根据设置自动管理缓存。但是其缺点也同样明显,因为每次请求仍然要用php解析一遍,效率和纯静态相比还是大打折扣,在大的pv面前还是不能满足要求,在这种情况下,仅仅做动态缓存就不够了,必须实现静态缓存。
该文章转载自本站:http://www.jb51.net/html/200611/67/4965.htm

存了个图
存了个图

视频图片解析/字幕/剪辑,视频高清保存/图片源图提取

存了个图 17
查看详情 存了个图
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号