Memcached,指的是Memcached服务器,就是独立运行Memcached的后台服务器,用于存储数据的“数据库”。
PHP有两个memcache客户端:php memcache和php memcached。
php memcache独立用php实现,是老客户端,从我们实践中已发现有多个问题,而且功能少,属性也可设置的少;php memcached是基于原生的c的libmemcached的扩展,更加完善。
1、基于的库不同(我觉得这是本质区别,库的不同决定了后续差异)。memcache扩展是原生的(基于pecl - The PHP Extension Community Library扩展库)。memcached扩展是基于libmemcached库开发的,所以支持cas操作,cas操作就是多个线程并发修改同一个key的值的时候能够进行处理。
2、mc支持面向对象和面向过程两套接口操作服务端。而mcd扩展只支持面向对象方式操作。这也是库(libmemcached与libmemcache)的不同影响的。
3、 memcached支持Binary Protocol,而memcache不支持。还是库的不同导致。这意味着memcached会有更高的性能。通过$m->setOption(Memcached::OPT_BINARY_PROTOCOL,true) 设置二进制协议。