1.PHP有两个memcache客户端:

php memcache和php memcached。

2.注意名称上的区别,一个带d一个不带。。。

php memcache独立用php实现,是老客户端,从我们实践中已发现有多个问题,而且功能少,属性也可设置的少;
php memcached是基于原生的c的libmemcached的扩展,更加完善,建议替换为php memcached。

3.相关文档

memcache的文档在:http://pecl.php.net/package/memcache

memcached的文档在:http://pecl.php.net/package/memcached

memcache的方法列表在:http://cn2.php.net/memcache

memcached的方法列表在:http://www.php.net/manual/zh/book.memcached.php

4.然后看下时间,memcache最早是在2004年2月开发的,最后更新是在2013年4月,而memcached最早是在2009年1月开发的,最后更新是在2014年1月更新的。所以memcache的历史比memcached早。

5.在安装memcache扩展的时候并不要求安装其他东东,但是在安装memcached的时候会要求你安装libmemcached,问题来了,libmemcached是memcache的C客户端,它具有的优点是低内存,线程安全等特点。比如新浪微博之前就全面将php的memcache替换成php的memcached,在高并发下,稳定性果断提高。

6.memcache的方法特别少,比如getMulti,setMulti都是没有的,基本就剩下最简单的get和set了。所以说“memcached比memcache支持更多的memcache协议”。

7.然后memcached直接配置了session支持,只要稍微修改下配置文件就可以把session存储在memcache中了。

8.memcached支持分布式缓存,memcache貌似不太行。。

9.Memcache是原生实现的,支持OO和非OO两套接口并存。而memcached是使用libmemcached,只支持OO接口。

10.memcached还有个非常称赞的地方,就是flag不是在操作的时候设置了,而是有了一个统一的setOption()。Memcached实现了更多的memcached协议。

11.memcached支持Binary Protocol,而memcache不支持。这意味着memcached会有更高的性能。不过memcached目前还不支持长连接。

12.目前大多数php环境里使用的都是不带d的memcache版本,这个版本出的比较早,是一个原生版本,完全在php框架内开发的。与之对应的带d的memcached是建立在libmemcached的基础上,所以相对来说,memcached版本的功能更全一些。

所以,总结如下:

memcached是新形式下用来替代memcache的现代化memcache客户端扩展,所以,可以毫不犹豫的选择使用memcached了。。。。

参考文章:
1.http://www.cnblogs.com/yjf512/p/3778287.html
2.http://www.ttlsa.com/memcache/memcache-and-memcached-php-php-and-problems/