深入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 相关文章推荐
用php+javascript实现二级级联菜单的制作
May 06 PHP
在PHP中使用反射技术的架构插件使用说明
May 18 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
Jul 31 PHP
2个Codeigniter文件批量上传控制器写法例子
Jul 25 PHP
php中call_user_func函数使用注意事项
Nov 21 PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 PHP
PHP创建单例后台进程的方法示例
May 23 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
PHP实现更改hosts文件的方法示例
Aug 08 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
Oct 11 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
Oct 15 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
IP攻击升级,程序改进以对付新的攻击
2010/11/23 PHP
PHP swfupload图片上传的实例代码
2013/09/30 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
PHP 生成微信红包代码简单
2016/03/25 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
2016/10/19 PHP
javascript 继承实现方法
2009/08/26 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
基于vuejs+webpack的日期选择插件
2020/05/21 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
微信小程序列表时间戳转换实现过程解析
2019/10/12 Javascript
Python字符串转换成浮点数函数分享
2015/07/24 Python
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
Python爬虫获取图片并下载保存至本地的实例
2018/06/01 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
什么是python的必选参数
2020/06/21 Python
Python 创建TCP服务器的方法
2020/07/28 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
C/C++有关内存的思考题
2015/12/04 面试题
2013年入党人员的自我鉴定
2013/10/25 职场文书
营业员个人总结的自我评价
2013/10/25 职场文书
回门宴新郎答谢词
2014/01/12 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
产品生产计划书
2014/05/07 职场文书
交通安全标语
2014/06/06 职场文书
2014年学校工作总结
2014/11/20 职场文书
离婚纠纷代理词
2015/05/23 职场文书
职工食堂管理制度
2015/08/06 职场文书
人民币使用说明书
2019/04/17 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL