深入eAccelerator与memcached的区别详解


Posted in PHP onJune 06, 2013

eAccelerator和memcached,是目前较为主流的两个可使用在PHP之中的缓存加速工具.
eAccelerator专门为PHP开发,而memcached不仅仅用在PHP之中,其他所有的语言都可以使用.

eAccelerator的主要功能:

1. 缓存PHP文件的执行代码:在被缓存的代码再次被调用时,将直接从内存读取,从而在很大程度了PHP运行的速度.

2. 提供了共享内存操作函数:用户可以将自己的常见非资源对像,保存到内存之中,并可以随时读取出来.

memcached的主要功能:

提供共享内存操作函数,可以保存和读取数据

两者的共同点:

共同点:都提供了共享内存操作函数,可以用来保存和读取自己的数据

两者的区别:
eAccelerator作为PHP的扩展库存在,那么仅在PHP运行时,可以操作和读写共享内存,一般情况,只能由操作共享内存的程序自己调用.

同时,eAccelerator可以缓存PHP程序的执行代码,提升程序的调入和执行速度.

memcached主要作为一个共享内存服务器,其PHP扩展库仅仅作为PHP到memcached的连接库存在,类似MySQL扩展库.因而,memcached可以完全脱离PHP,其共享的数据,可以被不同的程序调用.

根据两者的不同,我们将他们使用在真真需要的地方:

eAccelerator主要用于单机PHP提速,缓存中间数据.对于实时性高,但数据操作量小的情况下,非常实用.

memcached用于分布式或者集群系统,多台服务器可以共享数据.对于实时性高,同时数据操作量大的情况下,非常实用.

对MemCached的正确认识

刚开始,听说用MemCached来缓存数据到内存,然后对数据进行操作,(这里的操作包括了,查询和更新),听起来真是太棒了。这样,一定时间内不用操作数据库。真是太好了。

然后我一直在想一个问题,查询确实可以,可是更新内存要怎么处理并发?难道,我们的MemCached 来有这般功能,如果这样,那真是太神了。

可是事情,并不是像说的那样。对MemCached的这样认识是不正确的。

MemCache和其他的cache是一样的,当数据更新之后,cached 的东西,也就是 out date 的东西了。

在网上看了,前辈们对MemCached的阐述,更是说明了这点。

所以,不应该指望,直接更新MemCached,而省略了数据库这一环节。

这前认为 他提供的set方法是用来更新数据库的,那时自己的痴心妄想。

其实这个方法是将数据库中的记录缓存到MemCached中,同时指定它的有效期是多长。

现在我想到了,为什么,我们的MemCached中的内容一直都没变化,即使我已经删除了该条记录。

我们在set()的时候,并没有设置它的过期时间,也就默认是0,即永不过期。只要MemCached服务器没有重起,它就一直存在。

这样说来,我们的ROR项目中,使用缓存来减少数据库的检索,而不能指望让MemCached可以让我们连更新数据库也免了。

如果真的连更新数据库也免了,就真的跨入了非数据库时代,哈哈。估计不太可能。如果我们能保证用户是以队列的方式 ,一个接着一个来的话。

还是另想办法来减轻更新带来的压力。

PHP 相关文章推荐
基于qmail的完整WEBMAIL解决方案安装详解
Oct 09 PHP
一个简单实现多条件查询的例子
Oct 09 PHP
php定时计划任务的实现方法详解
Jun 06 PHP
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
php中的比较运算符详解
Oct 28 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
Apr 24 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
Nov 17 PHP
调试WordPress中定时任务的相关PHP脚本示例
Dec 10 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
Oct 23 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
Oct 17 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 PHP
基于PHP开发中的安全防范知识详解
Jun 06 #PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 #PHP
一些php项目中比较通用的php自建函数的详解
Jun 06 #PHP
强烈声明: 不要使用(include/require)_once
Jun 06 #PHP
探讨PHP调用时间格式的参数详解
Jun 06 #PHP
探讨多键值cookie(php中cookie存取数组)的详解
Jun 06 #PHP
深入密码加salt原理的分析
Jun 06 #PHP
You might like
Win2000+Apache+MySql+PHP4+PERL安装使用小结
2006/10/09 PHP
PHP set_time_limit(0)长连接的实现分析
2010/03/02 PHP
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
PHP抽奖算法程序代码分享
2015/10/08 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
用 JSON 处理缓存
2007/04/27 Javascript
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
JS按位非(~)运算符与~~运算符的理解分析
2011/07/31 Javascript
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
微信小程序模板和模块化用法实例分析
2017/11/28 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
python下载文件时显示下载进度的方法
2015/04/02 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
CSS3实现可翻转的hover效果
2018/05/23 HTML / CSS
美国Rue La La闪购网站:奢侈品、中高档品牌限时折扣
2016/10/19 全球购物
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
NFL官方在线商店:NFLShop
2020/07/29 全球购物
请问如下代码执行后a和b的值分别是什么
2016/05/05 面试题
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
农业资源与环境专业自荐信范文
2013/12/30 职场文书
宠物店的创业计划书范文
2014/01/11 职场文书
教师岗位聘任书范文
2014/03/29 职场文书
文化产业实施方案
2014/06/07 职场文书
村委会贫困证明范文
2014/09/21 职场文书
前台岗位职责
2015/02/13 职场文书