Blog

Memcache|eAccelerator|APC|Xcache|Redis 五种php缓存加速器特点浅析

一、说说Memcached优化方案 
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。 
我想说:discuz官方论坛使用的正是Memcached内存优化方案,但是建议个人站长不要跟风,因为它的确不适合我们,Memcached作为高速运行的分布式缓存服务器主要用于分布式缓存,很多站长认为它会优化 PHP,其实不是这样的,所以很多站长使用Memcached优化方案后觉得速度上和没安装Memcached前没什么区别,就是因为这个道理。discuz官方很可能是集群部署方案,采用Memcached接口当然是没有问题的。 

二、说说eAccelerator 
eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了php脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销大大消除。 它还有对脚本起优化作用,以加快其执行效率。使PHP程序代码执效率能提高1-10倍。 
我想说:这回eAccelerator才是php加速器,而刚才讲到的Memcached是内存优化器,二者本质上是有区分的。 
eAccelerator主要用于单机PHP提速,缓存中间数据.对于实时性高,但数据操作量小的情况下,非常实用. 
memcached用于分布式或者集群系统,多台服务器可以共享数据.对于实时性高,同时数据操作量大的情况下,非常实用. 
所以如果您的站点不是分布式部署可以考虑用eAccelerator加速php。 

三、说说Alternative PHP Cache(APC) 通常就用三个大写字母APC表示 

简介:Alternative PHP Cache (APC)是一种对PHP有效的开放源高速缓冲储存器工具,他能够缓存Opcode(目标文件)的php中间码。 
我想说:现在用的最多的可能就是APC了,因为它直接集成在php里了,只要在编译时加上参数就可以直接使用,而不用另外去下载插件。当初apc是几个opcode缓存器里最烂的,所以当时成天有人拿出来吐嘈(包括当时国内的phpe), 不过随着apc被php官方采纳,由php 团队维护后,前景开始明朗,而且apc开始拟定进军标准包计划。 
我亲自使用APC的感受是缓存的比较厉害,当时记得修改discuz模板几分钟都不会更新缓存,当然这个也许我是个例,APC还值得推荐使用的。 

四、谈谈Xcache 
简介:Xcache 是一个开源的 opcode 缓存器/优化器, 他能够提高服务器上的 PHP 性能,他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率 2 到5 倍, 降低服务器负载。 
我想说:XCache作为国人自己开发的东西,做小菜鸟的我也感到骄傲,XCache,APC,eAccelerator这三款都可以称为Opcode Cache,全部都支持opcode cache功能,性能上差距也不大,与memcached不同的是,apc/eac/xcache他们是存在本地内存里的,免去了网络开销,更快。XCache官方更新很快,我还是比较看好XCache的。一会会针对以上加速器做评测,继续往下看。 

五、谈谈Redis 

 Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。   Redis 很多情况下都是和memcached做比较,而且很多人认为选Redis可以完全替代memcached,原因是Redis 数据类型更丰富,性能不在memcached之下,redis有的memcached没有,memcached有的redis都有。据我了解新浪旗下的微博等周边产品都靠着Redis 。可见其强大程度,不过个人站长我还是不怎么推荐Redis 和memcached。还是老老实实的用点实在的php加速器就足够了。 


PHP加速器比较结果总结 
     1、通过测试得出eAccelerator在请求时间和内存占用综合方面是最好的。 

     2、通过测试得出使用加速器比无加速器在请求时间快了3倍左右。 

     3、通过各个官方观察,XCache是更新最快的,这也说明最有发展的。

没有评论

Leave a Reply