一、说说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加速器就足够了。

总结:之前看到过一篇文章对XCache,APC,eAccelerator这三款加速器进行过测试,文章连接: 
http://blog.163.com/lgh_2002/blog/static/44017526201222213425279/ 
测试得出的数据:

   请求时间(秒)  单次请求时间(毫秒)  最大内存占用(MB)  最小内存占用(MB)
 None  10.41  96.08  24  24
 APC  30.45  32.84  21  21
 eAccelerator  31.26  31.99  23  18
 XCache  30.28  33.02  29  19

PHP加速器比较结果总结

1、通过测试得出eAccelerator在请求时间和内存占用综合方面是最好的。

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

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

php缓存方案的更多相关文章

  1. jQuery数据缓存方案详解:$.data()的使用

    我们经常使用隐藏控件或者是js全局变量来临时存储数据,全局变量容易导致命名污染,隐藏控件导致经常读写dom浪费性能.jQuery提供了自己的数据缓存方案,能够达到和隐藏控件.全局变量相同的效果,但是j ...

  2. nginx视频服务缓存方案设置指导

    本文描述了如何通过设置nginx缓存达到降低服务器后端压力的效果以及结合nginx第三方插件ngx_cache_purge实现nginx缓存后的自动清理功能.具体实施步骤如下所示:第一步:获取清除清除 ...

  3. java web开发缓存方案,ehcache和redis哪个更好

    Ehcache在java项目广泛的使用.它是一个开源的.设计于提高在数据从RDBMS中取出来的高花费.高延迟采取的一种缓存方案.正因为Ehcache具有健壮性(基于java开发).被认证(具有apac ...

  4. 基于微前端qiankun的多页签缓存方案实践

    作者:vivo 互联网前端团队- Tang Xiao 本文梳理了基于阿里开源微前端框架qiankun,实现多页签及子应用缓存的方案,同时还类比了多个不同方案之间的区别及优劣势,为使用微前端进行多页签开 ...

  5. zmNgFrameWork 架构升级ng1.5和md5静态资源缓存方案【angular1.x】

    前言: 在我前面的博客,angular项目总结——angular + browserify + gulp + bower + less 架构分享  把我开发angular的架构进行了分享,并上传到了g ...

  6. 移动应用开发(IOS/android等一下)在一般图像缓存方案评述(附流程图)

    在移动应用开发.我们经常从网络请求到该设备显示遇到的场景图片. 假设多次发动每个请求,废物流.浪费电.: 将图片持久化到磁盘也不失为一种策略:但每次从文件读取图片也存在一定的io开销,就算採用此策略, ...

  7. 秋色园QBlog技术原理解析:性能优化篇:缓存总有失效时,构造持续的缓存方案(十四)

    转载自:http://www.cyqdata.com/qblog/article-detail-38993 文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文 ...

  8. 缓存方案之Redis

    Redis简介   Redis是Remote Dictionary Server(Redis) 的缩写,或许光听名字你就能猜出它大概是做什么的.不错,它是一个由Salvatore Sanfilippo ...

  9. 聊聊在AOP模式下的缓存方案

    面向方法的数据集缓存 使用了autofac做为ioc容器,使用Autofac.Extras.DynamicProxy2作为方法拦截器,缓存面向方法,直接在方法上添加CachingAttribute特性 ...

随机推荐

  1. Qt使用AES加密算法对字符串进行加密

          因工作需要,需要对字符串进行加密处理,在网上找了很长时间,终于找到了一个可以使用的aes加密算法.其源代码采用c++编写而成,但其头文件引用windows.h,经过修改部分代码,将#inc ...

  2. C#Transfrom

    代码如下: private void btnConvertType_Click(object sender, EventArgs e) { if (rdo_btn_ConvertObject.Chec ...

  3. iOS避免键盘遮挡输入方案

    项目中经常会遇到这样的问题:一个tableView中有大量的textField,当点击屏幕底部的textfield时,由于键盘弹出挡住了textfield输入框里的内容,造成很差的用户体验,如下图,点 ...

  4. JAVA--聊天界面面板

    package windows.beautify; import java.awt.BorderLayout; import java.awt.Color; import java.awt.event ...

  5. Android之来历

    Android一词的本义指“机器人”,同时也是谷歌于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件.用户界面和应用 软件组成,号称是首个为移动终端打造的 ...

  6. MYSQL存储过程注释位置

    MYSQL数据库存储过程,像"#“和”/%%/“注释需要写在BEGIN,END语句块里面,否则保存不了,例如: CREATE PROCEDURE HelloWorld() BEGIN #大家 ...

  7. Linux下彻底删除oracle步骤【转】

    (1)关闭oracle服务和后台进程  <1>查看安装的主目录和环境变量: echo $ORACLE_HOME env | grep ORA <2>查看实例名 sqlplus ...

  8. 第11章 集合、比较和转换(C#入门经典第6版)

    1.集合 数据有一定的限制,最不能忍受的是一旦创建,数组的大小就固定,不能再添加.而集合则包含了数组所具有的功能,且可以任意添加/删减元素项,还有一些其他 功能. 集合的功能主要通过接口来实现,接口包 ...

  9. 在MVC中利用uploadify插件实现上传文件的功能

    趁着近段的空闲时间,开发任务不是很重,就一直想把以前在仓促时间里所写的多文件上传功能改一下,在网上找了很多例子,觉得uploadify还可以,就想用它来试试.实现自己想要的功能.根据官网的开发文档,同 ...

  10. C#list泛型集合

    //创建list泛型集合 List<int> ilist = new List<int>(); ilist.Add(); ilist.Add(); ilist.AddRange ...