• 技术文章 >后端开发 >php教程

    有关php的缓存技术介绍

    2016-07-25 09:03:53原创452
    1. include('adodb.inc.php'); # load code common to ADOdb
    2. $ADODB_CACHE_DIR = '/usr/ADODB_cache';
    3. $conn = &ADONewConnection('mysql'); # create a connection
    4. $conn->PConnect('localhost','userid','','agora');# connect to MySQL, agora db
    5. $sql = 'select CustomerName, CustomerID from customers';
    6. $rs = $conn->CacheExecute(15,$sql);
    7. ?>
    复制代码

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

    再来看看Smarty提供的页面缓存功能:

    1. require('Smarty.class.php');

    2. $smarty = new Smarty;

    3. $smarty->caching = true;

    4. if(!$smarty->is_cached('index.tpl')) {

    5. // No cache available, do variable assignments here.
    6. $contents = get_database_contents();
    7. $smarty->assign($contents);
    8. }
    9. $smarty->display('index.tpl');
    10. ?>

    复制代码

    如上,每次访问页面的时候,都会先检测相应的缓存是否存在,如果不存在,就连接数据库,得到数据,完成模板变量的赋值,显示页面,同时生成缓存文件,这样下次访问的时候缓存文件就发挥作用了,而不会再执行if块的数据查询语句了。当然,在实际使用中会有很多东西要考虑,比如,有效期的设置,缓存组的设置等等,具体可以查看Smarty手册中有关缓存(caching)的相关章节。

    以上两个PHP流行组件缓存方式的侧重点是不同的,对于Adodb的缓存而言,它缓存的是数据,对于Smarty的缓存而言,它缓存的是页面。其他提供缓存功能的组件还有很多(如:PEAR::Cache_Lite等等),实际编程中使用哪个方案要具体情况具体分析,也可能会综合使用。

    使用这些组件内置的缓存方案有一个很明显的好处是它们的实现对客户端而言都很透明。只要进行必要的设置(如:缓存时间,缓存目录等等)就可以了,而不用过多考虑实现缓存的细节问题,系统会根据设置自动管理缓存。但是其缺点也同样明显,因为每次请求仍然要用PHP解析一遍,效率和纯静态相比还是大打折扣,在大的PV面前还是不能满足要求,在这种情况下,仅仅做动态缓存就不够了,必须实现静态缓存。

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:有关php的缓存技术介绍
    上一篇:php中使用split分离汉字的代码 下一篇:有关php页面重定向的三种方法
    大前端线上培训班

    相关文章推荐

    • PHP中怎样去连接MySQL数据库?• 你必须了解PHP中什么是抽象类和抽象方法• PHP中怎样完成Cookie的创建、读取和删除?• PHP中怎样去判断对象是否属于一个类?• 五分钟带你看PHP中的接口interface声明与应用(实例详解)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网