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截取字符串并保留完整xml标签的函数代码

    php截取字符串并保留完整xml标签的函数代码

    截取字符串并保留完整xml标签的php代码,有需要的朋友可以参考下
    2013-02-02
  • php基于登陆时间判断实现一天多次登录只积分一次功能示例

    php基于登陆时间判断实现一天多次登录只积分一次功能示例

    这篇文章主要介绍了php基于登陆时间判断实现一天多次登录只积分一次功能,适合会员系统的积分功能,涉及php时间判断与数据库相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • PHP模拟asp.net的StringBuilder类实现方法

    PHP模拟asp.net的StringBuilder类实现方法

    这篇文章主要介绍了PHP模拟asp.net的StringBuilder类实现方法,较为简单的模拟了StringBuilder类针对文本的基本操作技巧,需要的朋友可以参考下
    2015-08-08
  • PHP 柱状图实现代码

    PHP 柱状图实现代码

    利用imagefilledrectugle的函数来画出矩形,实现柱状图,具体的代码里面都加入了详细的注释。
    2009-12-12
  • php编写的抽奖程序中奖概率算法

    php编写的抽奖程序中奖概率算法

    本文给大家分享的是php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法。用法很简单,代码里有详细注释说明,一看就懂,有需要的小伙伴参考下吧。
    2015-05-05
  • PHP抽象类 介绍

    PHP抽象类 介绍

    对于PHP程序员来说,最为难掌握的一点要数PHP抽象类应用这一块知识点。作为一个新手其实也还没有到要用面向对象的知识去编程,但以后进行开发,使用类进行封装或者使用接口之类,把程序进行各种模块式的开发,这当然是必然的
    2012-06-06
  • php 使用post,get的一种简洁方式

    php 使用post,get的一种简洁方式

    使用$_POST,和$_GET获取客户发来的信息时,一般是使用数组加小标的方式。
    2010-04-04
  • 探究Laravel使用env函数读取环境变量为null的问题

    探究Laravel使用env函数读取环境变量为null的问题

    最近在工作中遇到一个问题,不知道大家有没有遇到过,在 Laravel中(除 app/config 目录下的配置文件中)使用env函数读取环境变量,有时有用,有时返回 null,这究竟怎么回事?下面通过这篇文章让我们一探究竟。有需要的朋友们下面来一起看看吧。
    2016-12-12
  • 经典PHP加密解密函数Authcode()修复版代码

    经典PHP加密解密函数Authcode()修复版代码

    这篇文章主要介绍了经典PHP加密解密函数Authcode()修复版代码,需要的朋友可以参考下
    2015-04-04
  • php中最简单的字符串匹配算法

    php中最简单的字符串匹配算法

    这篇文章主要介绍了php中最简单的字符串匹配算法,可实现简单的字符串查找与匹配位置显示功能,是比较实用的字符串操作技巧,需要的朋友可以参考下
    2014-12-12

最新评论