深入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之sphinx
May 15 PHP
php中session过期时间设置及session回收机制介绍
May 05 PHP
ThinkPHP模型详解
Jul 27 PHP
在openSUSE42.1下编译安装PHP7 的方法
Dec 24 PHP
简单PHP会话(session)说明介绍
Aug 21 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
Sep 01 PHP
php加密解密字符串示例
Oct 13 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
ThinkPHP5框架缓存查询操作分析
May 30 PHP
Yii支持多域名cors原理的实现
Dec 05 PHP
PHP attributes()函数讲解
Feb 03 PHP
基于laravel belongsTo使用详解
Oct 18 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
做个自己站内搜索引擎
2006/10/09 PHP
php文件上传后端处理小技巧
2016/05/22 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
js no-repeat写法 背景不重复
2009/03/18 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
js时间日期和毫秒的相互转换
2013/02/22 Javascript
浅析return false的正确使用
2013/11/04 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
jQuery中[attribute=value]选择器用法实例
2014/12/31 Javascript
Javascript中的高阶函数介绍
2015/03/15 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
vue 1.x 交互实现仿百度下拉列表示例
2017/10/21 Javascript
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
操作Windows注册表的简单的Python程序制作教程
2015/04/07 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
Marlies Dekkers内衣美国官方网上商店:高端内衣品牌
2018/11/12 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
建筑施工安全责任书
2014/07/24 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
催款函范本大全
2015/06/24 职场文书
新娘婚礼致辞
2015/07/27 职场文书
心得体会该怎么写呢?
2019/06/27 职场文书