您当前的位置:首页 > 网络编程 > Php编程 > 正文

Zend Platform动态内容缓存说明

【字体大小: 2009-03-30 19:11 来源:站长中国 作者:编辑整理 

  Dynamic Content Caching 使用说明

  作为ZendPlatform中性能管理的强大组件,动态内容缓存能为大幅度地提高网站的性能。同时,为了更好地让这个组件发挥它的强大作用,在对文件做cache的时候,需要注意以下几个方面:

  1、 cache的配置。

  2、 如何对PHP文件做cache。

  3、 PHP文件的cache条件。

  4、 ZendPlatform API.

  一、Cache的配置

  

 

  图 1.1

  图1.1列出的是动态内容缓存的配置选项。这里需要注意的是Maximum Cache Size这个配置选项,默认的设置是”unlimited”,这里建议是改为一个固定值,如上图设定的是1G。同时对“Minimum Free Diskspace”的设置是表示当磁盘空闲空间少于设定值时,不再进行cache操作,这个设置需要根据磁盘的具体应用而定。

  图中最重要的设置是“Default Dynamic Caching Conditions”,这个设置表示对一个文件做cache的时候,默认的cache设置。具体的设置在下图中表示:

  

 

  图 1.2

  图1.2中列出了对PHP文件做cache的时候,cache的条件。包含了数据传输方式和参数值以及cache的条件,详细设置在PHP文件的cache条件中说明。二、如何对PHP文件做cache

  对cache做了配置之后,如何对文件进行cache呢,或者在哪里对文件做cache呢?在Performance功能里的File view组件可以实现此项功能。 “File view”选项,列出了服务器各个域名的发布目录下的所有文件。在这里,我们可以对文件进行cache。默认的文件状态是加速状态。点击文件名前面的选项框,选中后点击列表顶部的cache按钮就可以完成对一个文件的cache。当然,可以对多个文件和文件目录做整体cache。只需要注意文件是否满足cache的默认设置要求。下图表示的是“File View”界面:

  

 

  图 2.1

  三、PHP文件的cache条件:

  作为一门动态的web应用语言,PHP具备了许多种数据传递方式。比如GET、COOKIE、SESSION等都是数据交互的方式。当一个文件通过ZendPlatform的GUI界面被cache的时候,它的执行结果将会被保存在指定的缓存区,如果第二个访问该文件的请求到达时,ZendPlatform将根据cache条件进行判断,看时候需要重新执行文件。如果根据cache条件被缓存的文件已经达到访问的要求,ZendPlatform将直接把缓存区中该文件的执行结果返回给用户。所以cache的条件在cache处理的过程中,起到了至关重要的作用。

  那么如何对不同的PHP文件进行cache的条件设置呢?在上一节介绍的“File View”选项中点击文件名将弹出cache条件的设置界面。如下图:

  

 

  图3.1图中列出了对PHP文件cache的时候,设置的条件选项。每一行的第一格表示数据传递的类型,第二个填入控制的变量名,第三个表示状态控制。下面就状态控制的选项进行说明:

  

 

  除了特殊的应用以外,在一般情况下建议使用默认的“None”设置。下面以COOKIE为例,介绍下对PHP文件做cache的条件控制。如下图所示:

  

 

  图 3.2

  图中列出了两个cache的条件,第一个是AllGET选项,表示当访问请求包含的变量包含新的值时重新执行文件,并保存到缓存区。第二个是COOKIE选项,图举例的是以“username”这个变量为cache条件,当cache中的cookie中的“username”变量出现新的值的时候,重新执行文件,并保存到缓存区。

  四、ZendPlatform API:

  ZendPlatform的GUI界面为用户提供的是“out-of-the-box”的功能,属于即装即用的功能,不需要对程序本身进行修改。同时,为了最大限度地发挥PHP的性能,ZendPlatform还提供的一系API编程接口。该API接口把cache的范围缩小到单个函数,以代替整个文件的输出。ZendPlatfrom的API是直接内嵌在PHP代码里面的,可以实现函数输出值或数据库访问值的缓存和缓存控制。最常见的ZendPlatform的API是数据缓存(Data Caching)使用数据缓存最大的应用是社区、论坛系统。

  Data Caching数据缓存获取的是PHP或者用户定义的函数的执行结果,并以字符串的形式进行缓存。通过使用serialize和unserialize这两个函数你还可以对数列和对象进行缓存。对于直接产生文件输出的函数,我们不建议对它进行缓存,因为如果它被缓存了它将不会再被执行,从而导致文件没有输出。数据缓存中使用的函数包括output_cache_fetch, output_cache_put 和 output_cache_get。

  为了更好地应用好Zend提供的API函数,这里提供了5条建议:

  产生输出的循环,常见的产生内容的循环有菜单中的选项,或者是数据库重新提取得网站新闻列表。   通常情况下,数据库的访问占用了绝大部分的时间。可以使用数据缓存方式实现数据库访问的缓存。但是这里要注意的是,数据库访问的返回结果只是数据地址,而并不是地址本身,所以在缓冲之前,需要对数据库的返回结果进行转换成真实数据的处理。   可以使用缓存段里面的ID里的变量来建立不同的代码执行的不同数据。比如,不同参数经过函数执行后返回的不同执行结果。   给不同的函数定义不同的cache周期。   可以实现不同代码之间,或者不同用户之间的文档或数据共享,在很多情况下,这个功能可以代替include文件。   举例说明数据缓存的使用。下面是一段PHP的代码,实现select菜单。    tag from $forums    foreach ($forums as $forum)    {   echo "...";    }   ?>   使用ZendPlatform的API我们可以将此代码修改为      如果在缓存中有“ForumsList”的数据,将直接从缓存中提取,从而绕过了执行程序并从数据库提取的环节。【

    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    【责任编辑:绝口不提】 标签:

    更多相关内容

    最新评论 查看所有评论
    发表评论 查看所有评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    用户名:密码:验证码: