php模块memcache和memcached区别分析


Posted in PHP onJune 14, 2011

1.目前大多数php环境里使用的都是不带d的memcache版本,这个版本出的比较早,是一个原生版本,完全在php框架内开发的。与之对应的带d的memcached是建立在libmemcached的基础上,所以相对来说,memcached版本的功能更全一些。
memcache:http://cn2.php.net/manual/en/book.memcache.php
memcached:http://cn2.php.net/manual/en/book.memcached.php
2.Memcache是原生实现的,支持OO和非OO两套接口并存。而memcached是使用libmemcached,只支持OO接口。
3.memcached还有个非常称赞的地方,就是flag不是在操作的时候设置了,而是有了一个统一的setOption()。Memcached实现了更多的memcached协议。
4.memcached支持Binary Protocol,而memcache不支持。这意味着memcached会有更高的性能。不过memcached目前还不支持长连接。

下面有一张表,来对比php客户端扩展memcache与memcached
http://code.google.com/p/memcached/wiki/PHPClientComparison

另外一点也是大家比较关心的,就是所使用的算法。大家都知道“一致性hash算法”是当添加或删除存储节点时,对存储在memcached上的数据影响较小的一种算法。那么在php的两个扩展库中,都可以使用该算法,只是设置方法有所不同。
Memcache
修改php.ini添加:
[Memcache]
Memcache.allow_failover = 1
……
……
Memcache.hash_strategy =consistent
Memcache.hash_function =crc32
……
……
或在php中使用ini_set方法:
Ini_set(‘memcache.hash_strategy','standard');
Ini_set(‘memcache.hash_function','crc32');

Memcached
$mem = new memcached();
$mem->setOption(Memcached::OPT_DISTRIBUTION,Memcached::DISTRIBUTION_CONSISTENT);
$mem->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE,true);

PHP 相关文章推荐
一个简单的自动发送邮件系统(二)
Oct 09 PHP
PHP与MySQL开发的8个技巧小结
Dec 17 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
May 09 PHP
使用php判断网页是否gzip压缩
Jun 25 PHP
php后门URL的防范
Nov 12 PHP
php实现的双向队列类实例
Sep 24 PHP
PHP中mysql_field_type()函数用法
Nov 24 PHP
PHP两种快速排序算法实例
Feb 15 PHP
php无限分类使用concat如何实现
Nov 05 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
WHOOPS PHP调试库的使用
Sep 29 PHP
sphinx增量索引的一个问题
Jun 14 #PHP
批量获取memcache值并按key的顺序返回的实现代码
Jun 14 #PHP
提高define性能的php扩展hidef的安装和使用
Jun 14 #PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
Jun 13 #PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 #PHP
php学习笔记 类的声明与对象实例化
Jun 13 #PHP
php学习笔记 PHP面向对象的程序设计
Jun 13 #PHP
You might like
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
php的hash算法介绍
2014/02/13 PHP
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
laravel 中如何使用ajax和vue总结
2017/08/16 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
javascript中Number对象的toString()方法分析
2014/12/20 Javascript
JS实现进入页面时渐变背景色的方法
2015/02/25 Javascript
使用C++为node.js写扩展模块
2015/04/22 Javascript
简介JavaScript中valueOf()方法的使用
2015/06/05 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
浅谈关于axios和session的一些事
2017/07/13 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
Vue页面切换和a链接的本质区别详解
2019/11/12 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
jquery+ajax实现异步上传文件显示进度条
2020/08/17 jQuery
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
Python面向对象编程中的类和对象学习教程
2015/03/30 Python
Python 获取当前所在目录的方法详解
2017/08/02 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
美国皮靴公司自1863年:The Frye Company
2016/11/30 全球购物
Stokke美国官方网店:高级儿童家具、推车、汽车座椅和配件
2020/06/06 全球购物
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
单位成立周年感言
2014/01/26 职场文书
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书