请教PHP扩展Memcache和Memcached的区别


一直搞不清这二个PHP扩展有什么不同,请教各自优缺点及性能上有哪些不同。

memcached php

优雅、气质 12 years, 3 months ago

memcached相当Memcache来说版本更新,除了 @胡加杰 所说的,我再补充几条:

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

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

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

4.php的memcached与Memcache两个扩展都支持一致性hash算法,不过设置方法不太一样:
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);

justcoa answered 12 years, 3 months ago

Your Answer