一、说说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. [Polymer] Custom Elements: Styling

    Code: <dom-module id="business-card"> <template> <div class="card" ...

  2. Excel02-快速无误输入多个零

    第一步:设置单元格格式-->小数位数为0,货币符号为¥ 第二步:在单元格输入数据:1**5回车即显示为¥100,000 **N 表示后面有N个零,会自动加入我们设置的货币符号¥ 这对我们在输入巨 ...

  3. python字符串连接方式(转)

    在python中有很多字符串连接方式,今天就在这里具体总结一下: ①.最原始的字符串连接方式:str1 + str2②.python 新字符串连接语法:str1, str2③.奇怪的字符串方式:str ...

  4. linux一键安装vncserver脚本

    title: linux一键安装vncserver脚本 date: 2016-04-11 14:32:04 tags: --- linux多数情况下是作为服务器使用的,管理员一般也喜欢使用命令行来管理 ...

  5. TimeSpinner( 时间微调) 组件

    本节课重点了解 EasyUI 中 Spinner(微调)组件的使用方法,这个组件依赖于Spinner(微调)组件. 一. 加载方式//class 加载方式<input id="box& ...

  6. 关于SQL中数据类型(float和real)和 .NET Framework 中数据类型(float和double)的问题

    今天同学写程序遇到一个问题,MSSQL里的数据是 float 类型,在 .NET Framework 中用的时候也转换成 float 类型,结果报错,类型转换异常,明明是相同的类型,为什么会异常 在w ...

  7. css float父元素高度塌陷

    css float父元素高度塌陷 float 使父元素高度塌陷不是BUG,反而是标准. float 原本是为了解决文字环绕才出现的. 当然有的时候要解决高度塌陷的问题 以下几个方法可以解决float ...

  8. 调用有道翻译API

    前两天朋友说起NASA开放了数据API,今儿突然想起从来没用过外部提供的API,然而简单用得多的貌似是有道词典API,就像试试,本来觉得应该挺简单的,用urllib模块很快就实现了. 不过测试时才发现 ...

  9. (一)HTML5 - pushState 无刷新更新地址

    可以解决什么问题: 可以实现网页的ajax加载,同时又能完成URL的改变而没有网页跳转刷新的迹象,就像是改变了网页的hash(#)一样. 优于hash: 避免了改变hash的问题,避免了用户不理解UR ...

  10. float和double数据类型的声明,转换和计算

    声明时,只要有小数部分float必须加F/f,而double却不用 //float的声明只要有小数部分就要加F,不然会报不能隐式的将double类型转换为float类型. float f1 = 1;/ ...