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


Posted in PHP onMarch 12, 2014

折腾VPS的朋友,在安装好LNMP等Web运行环境后都会选择一些缓存扩展安装以提高PHP运行速度,常被人介绍的有eAccelerator、memcached、xcache、Alternative PHP Cache这几个缓存扩展,它们之间有什么区别?分别的作用又是什么?我们如何选择?这是本文给于大家的答案。

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时间.因此可以在php.ini中设置system缓存为永不过期(apc.ttl=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这个组合。

PHP 相关文章推荐
php addslashes 函数详细分析说明
Jun 23 PHP
php access 数据连接与读取保存编辑数据的实现代码
May 12 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
Aug 01 PHP
PHP数据流应用的一个简单实例
Sep 14 PHP
jquery+php实现导出datatables插件数据到excel的方法
Jul 06 PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 PHP
PHP与Ajax相结合实现登录验证小Demo
Mar 16 PHP
PHP QRCODE生成彩色二维码的方法
May 19 PHP
php实现博客,论坛图片防盗链的方法
Oct 15 PHP
PHP 网站修改默认访问文件的nginx配置
May 27 PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 PHP
PHP实现简易用户登录系统
Jul 10 PHP
php使用websocket示例详解
Mar 12 #PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
Mar 12 #PHP
php实现快速排序的三种方法分享
Mar 12 #PHP
php二分查找二种实现示例
Mar 12 #PHP
php遍历文件夹和文件列表示例分享
Mar 11 #PHP
php获取文件夹路径内的图片以及分页显示示例
Mar 11 #PHP
php上传图片存入数据库示例分享
Mar 11 #PHP
You might like
php 获得汉字拼音首字母的函数
2009/08/01 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
2017/10/26 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
javascript中数组中求最大值示例代码
2013/12/18 Javascript
JavaScript实现自动对页面上敏感词进行屏蔽的方法
2015/07/27 Javascript
jQuery复制节点用法示例(clone方法)
2016/09/08 Javascript
React-Router如何进行页面权限管理的方法
2017/12/06 Javascript
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
在vue中动态添加class类进行显示隐藏实例
2019/11/09 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
Matplotlib.pyplot 三维绘图的实现示例
2020/07/28 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
趣天网日本站:Qoo10 JP
2019/09/18 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
农业大学毕业生的个人自我评价
2013/10/11 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
2014年保洁工作总结
2014/11/24 职场文书
自荐信格式模板
2015/03/27 职场文书
千与千寻观后感
2015/06/04 职场文书
幼儿园开学报名通知
2015/07/16 职场文书
干货干货!2019最新优秀创业计划书
2019/03/21 职场文书
详解python网络进程
2021/06/15 Python
Pytest中conftest.py的用法
2021/06/27 Python