一、说说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. jsPlumb开发入门教程(实现html5拖拽连线)

    jsPlumb是一个强大的JavaScript连线库,它可以将html中的元素用箭头.曲线.直线等连接起来,适用于开发Web上的图表.建模工具等.它同时支持jQuery+jQuery UI.MooTo ...

  2. 重学《C#高级编程》(泛型与数组)

    前段时间工作比较忙,就没有写随笔了,现在继续. 前两天重新看了泛型和数组两章,简单说下我自己的收获吧 泛型 我们知道数组是一种批量的数据格式,而泛型其实就是一种自定义的批量数据格式,当数组和C#现有的 ...

  3. Entity Framework 4.1 绕过 EF 查询映射

    原文:http://blog.csdn.net/eqera/article/details/8411437 这是这了系列的最后一篇,我将讨论如何绕过 EF 的查询映射. 像所有优秀的框架一样,EF 知 ...

  4. winform摄像头拍照 C#利用摄像头拍照

    这是我的第一篇博文,决定以后每个程序都要记录下来,方便以后查阅! 本人小菜一名,本程序也是查阅了网上各位前辈的博客和百度知道所整理出来的一个小程序. 第一次写有点不知道从何写起,先贴一张程序图吧. 程 ...

  5. bug记录-setTimeout、setInterval之IOS7

    本篇文章主要讲查找并分析bug的思路,相关的函数不是本文的重点. 众所周知,setTimeout和setInterval是用来做延迟调用以及周期性调用的方法,他们支持的参数都差不多. setTimeo ...

  6. js-事件委托

    事件委托一般用于动态生成的元素中使用,如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...

  7. (转)在Repeater中嵌套使用Repeater

    在一般的网站中浏览类别的用户控件通常都位于大多数 ASP.NET 页的左边,它使用户能够按类别快速的查找产品.最近遇到一个客户,因为在他网站上展示的产品并不多,所以要求在原有类别浏览的基础上将产品也加 ...

  8. sql中视图视图的作用

    视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态 ...

  9. linux下enum的使用

    enum T { status1, status2, } Linux下: 1.做函数返回值时enum T f():不能写成T f(): 2.if(i == status1)不能写成 if(i == T ...

  10. Struts2 过滤器与拦截器

    学习Struts2时,发现有过滤器和拦截器,他们貌似都是一样的功能,但是为什么会有2个不同的名称呢?肯定是有区别的,所以打算自己整理一下. 过滤器,是在java web中,你传入的request,re ...