PHP中4个加速,缓存扩展的区别和选用建议

PHP中4个加速,缓存扩展的区别和选用建议,第1张

  1、eAccelerator

  eAccelerator是一个自由开放源码PHP加速器,优化和动态内容缓存,提高了PHP脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。 它还有对脚本起优化作用,以加快其执行效率。使PHP程序代码执效率能提高1-10倍。从文字上可以理解为:eAccelerator是PHP加速器扩展。

  2、memcached

  Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。从文字上可以理解为:内存缓存扩展,并且针对于集群服务器使用较多,主要用于分布式缓存,算是数据库缓存。

  3、Alternative PHP Cache(APC缓存)

  Alternative PHP Cache (APC缓存)是一种对PHP有效的开放源高速缓冲储存器工具,他能够缓存Opcode(目标文件)的PHP中间码。 APC的缓存分两部分:系统缓存和用户数据缓存 系统缓存 是自动使用的,是指APC把PHP文件源码的编译结果缓存起来,然后在再次调用时先对比时间标记。如果未过期,则使用缓存代码运行。默认缓存 3600s(一小时)但是这样仍会浪费大量CPU时间因此可以在phpini中设置system缓存为永不过期(apcttl=0)不过如果这样设置,改运PHP代码后需要restart一下您的web服务器(比如apache…)目前对APC的性能测试一般指的是这一层cache;从文字上理到:Alternative PHP Cache(APC缓存)也算是一种内存缓存扩展,算是数据库缓存扩展。

  4、Xcache

  是一个开源的opcode缓存器/优化器, 他能够提高服务器上的PHP性能,他通过把编译PHP后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度 通常能够提高您的页面生成速率2到5倍, 降低服务器负载。 其实它与eAccelerator一样是PHP加速器扩展。

  以上就是他们的作用与区别,简单一点就是:eAccelerator,xcache是PHP缓存扩展,memcached、APC缓存是数据库缓存扩展,一般两者只有要安装其中一个即可,不要贪多。另外,实际测试中发现当Cache数量超过一定阀值的时候,APC的性能不如Memcache。所以在扩展的选择上,本人一般会选择xcache+memcached这个组合。

第一个问题:

数据库缓存

我们知道当网站访问量很大的时候,用户直接去访问你的数据库,这个时候数据库压力很大,往往会导致你的数据服务器蹦了,或者服务器崩了。

那么这个时候的解决方案从数据库来说,就是加上缓存层,那么常用的缓存就是redis,memcache了,或者有人使用文件。

第二个问题:

服务器端的缓存:

文件缓存属于服务器上的,redis或者memcache也是属于你服务器端的缓存

第三个问题:

浏览器缓存,我们知道当你访问网页的时候,浏览器会去给你缓存网页,会把你网页的静态载入文件去缓存,你按f5刷新实际上第二次访问的是你的浏览器的缓存,当然这个可以根据header头的参数去改动,你按ctrl+f5就是强制刷新式的访问,这个时候就会重新去请求服务器拿文件了!

PHP数据缓存常用页面缓存 静态缓存

php页面缓存主要用到的是ob系列函数,如ob_start(),ob_end_flush(),ob_get_contents()

静态缓存是指静态化,直接生成HTML或XML等文本文件,有更新的时候重生成一次,适合于不太变化的页面

给你个页面缓存的例子

function page_cache($ttl = 0)

{

$ttl = $ttl $ttl : PAGE_TTL;//缓存时间,默认3600s

$contents = ob_get_contents();//从缓存中获取内容

$contents = "<!--page_ttl:"(time() + $ttl)"-->n"$contents;

//加上自定义头部:过期时间=生成时间+缓存时间

file_put_contents(PAGE_FILE, $contents);//写入缓存文件中

ob_end_flush();//释放缓存

}

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » PHP中4个加速,缓存扩展的区别和选用建议

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情