php模块memcache和memcached区别分析

 更新时间:2011年06月14日 22:19:20   作者:  
谈及php搭配memcached使用,已经是老生常谈的问题。但是有一些细节,不见得人人清楚。比如说php的模块memcache和memcached有什么区别等。下面我就简单介绍一下。
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中使用Imagick读取pdf并生成png缩略图实例

    PHP中使用Imagick读取pdf并生成png缩略图实例

    这篇文章主要介绍了PHP中使用Imagick读取pdf并生成png缩略图实例,本文直接给出实现代码,需要的朋友可以参考下
    2015-01-01
  • php cookie工作原理与实例详解

    php cookie工作原理与实例详解

    本篇文章主要介绍PHP cookie使用方法,在PHP开发过程中经常会用到PHP的cookie,这里给出代码实例,以便了解,有需要的小伙伴可以看下
    2016-07-07
  • php实现网站文件批量压缩下载功能

    php实现网站文件批量压缩下载功能

    这篇文章主要介绍了php实现网站文件批量压缩下载功能,文章提供了一个将文件压缩为zip格式的示例,感兴趣的小伙伴们可以参考一下
    2015-10-10
  • 20个PHP常用类库小结

    20个PHP常用类库小结

    下面是一些非常有用的PHP类库,相信一定可以为你的WEB开发提供更好和更为快速的方法。
    2011-09-09
  • PHP中判断foreach循环的第一个或者最后一个健名

    PHP中判断foreach循环的第一个或者最后一个健名

    我们知道在PHP中,根据键的数据类型,数组分为索引数组与关联数组,索引数组判断foreach循环的当前健名很简单,使用关键字就可以获取,关联数组怎么判断当前健名呢,我们从for循环找到灵感,本文介绍PHP中判断foreach循环的第一个或者最后一个健名已经当前健名的方法
    2024-01-01
  • php中DOMElement操作xml文档实例演示

    php中DOMElement操作xml文档实例演示

    DOMElement操作xml想必大家有所耳闻,接下来为大家以实例介绍下,感兴趣的朋友可以参考下哈,
    2013-03-03
  • PHP的Yii框架中过滤器相关的使用总结

    PHP的Yii框架中过滤器相关的使用总结

    这篇文章主要介绍了PHP的Yii框架中过滤器相关的使用总结,文中列举了一些常用的核心过滤器,需要的朋友可以参考下
    2016-03-03
  • PHP 数据库 常见问题小结

    PHP 数据库 常见问题小结

    揭露 PHP 应用程序中出现的五个常见数据库问题 —— 包括数据库模式设计、数据库访问和使用数据库的业务逻辑代码 —— 以及它们的解决方案。
    2009-06-06
  • .htaccess文件保护实例讲解

    .htaccess文件保护实例讲解

    .htaccess太强大了,但它本身会不会被破解掉呢,请问如何保护它?
    2011-02-02
  • 使用PHP批量生成随机用户名

    使用PHP批量生成随机用户名

    生成6 ~ 16位的用户名若干个,主要是文本操作,同事前提是要有一个字符串包。主要包含三个程序。
    2008-07-07

最新评论