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);

转载自:http://www.jb51.net/article/27366.htm

时间: 2024-10-12 14:30:45

php中memcache扩展及memcached扩展的区别的相关文章

$Django 路飞之redis内存数据库安装,python中使用,与Memcached,mongodb的区别

一 redis内存数据库安装 二 python中使用 三 redis,Memcached,mongodb的对比 原文地址:https://www.cnblogs.com/3sss-ss-s/p/10177083.html

在Windows32下为PHP5.6安装redis扩展和memcached扩展

一.php安装redis扩展   1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本 2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2.5-5.6-ts-vc11-x86.zip和php_igbinary-1.2.1-5.5-ts-vc11-x86.zip 下载地址: http://windows.php.net/downloads/pecl/snaps/redis/2.2.5/ http://windows.php.net/download

在Windows下为PHP5.6安装redis扩展和memcached扩展

一.php安装redis扩展   1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本 2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2.5-5.6-ts-vc11-x64.zip和php_igbinary-1.2.1-5.5-ts-vc11-x64.zip 下载地址: http://windows.php.net/downloads/pecl/snaps/redis/2.2.5/ http://windows.php.net/download

探究php的memcache和memcached扩展读写数组数据不相兼容原因

最近公司许多团队进行升级php7,目前支持php7读取mc的扩展只有memcached. 但是公司许多项目都会共用一个mc集群来存取用户session数据,存的时候是登陆时用memcache扩展以array的形式写进去,读的时候自然是用memcache扩展以array的形式读出来. 但是现在只能使用memcached进行读取.但是据我所知两者读取array形式的数据是互不兼容的,因此想探究一下究竟是为什么. 验证memcache扩展和memcached扩展读写数组数据是否不相兼容 测试脚本: <

读取设置memcache的值(优先支持memcached扩展和cas协议)

最近在项目中因为要防止并发,需要使用php的memcached扩展,memcached扩展支持cas协议,而memcache扩展却不支持.安装memcached过程中发现windows下并没有该扩展,为了保持代码的一致,就写了一个既支持memcached又支持memcache的类,这样就不用担心生产和本地开发代码的不一致.(注:笔者平常工作在windows下开发,生产环境是Linux.如果你平常开发和生产环境都是linux或mac的话就不会有这个问题) 下面就直接贴出代码了: <?php cla

yum 安装apache php 使php支持memcached扩展

在公司上新项目的时候,无论生产环境还是测试环境,都会让运维安装php 环境(lamp/lnmp),并让php支持memcached 的扩展.这里搭建php环境其实主要就是搭建apache 和php.mysql一般都是用单独的数据库,不会再同一台服务器上的.看似简单的东西,在搭建的时候,还真是遇到了不少问题,以此记录,方便各位运维同学. 一.163和默认的镜像源有些包不能下载,使用阿里的镜像源 见本博客地址:http://www.cnblogs.com/lzcys8868/p/7532569.ht

php的memcache和memcached扩展区别

老生长谈的问题了.我这里就整理一下. memcache的文档在:http://pecl.php.net/package/memcache memcached的文档在:http://pecl.php.net/package/memcached 首先看下时间,memcache最早是在2004年2月开发的,最后更新是在2013年4月,而memcached最早是在2009年1月开发的,最后更新是在2014年1月更新的.所以memcache的历史比memcached早. 在安装memcache扩展的时候并

[转]编译安装libevent,memcache,以及php的memcached扩展

一 安装libevent 1.去官网http://libevent.org/ 下载最新源码,我用的是libevent-2.0.20-stable.tar.gz 2.解压到/usr/src目录 ,执行命令:sudo tar -zxvf libevent-2.0.20-stable.tar.gz -C /usr/src 3.进入解压以后的目录,用sudo方式执行命令:sudo ./configure --prefix=/usr/local/libevent : make : make install

linux-CentOS6.4安装Memcached+memcached扩展+安装memcache扩展+Memcache同步SESSION的几种方法

一.编译环境的准备 yum install gcc  yum install gcc-c++ libstdc++-devel  yum install zlib-devel 二.源码包准备 wget http://monkey.org/~provos/libevent-1.4.14b-stable.tar.gzwget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz 三.安装与配置 1.安装libevent tar zx