Contents

PHP有两个memcache相关的扩展:memcachememcached (多了个英文字母d)。两者都是用来连接 memcache服务器的。他们的区别如下:

  1. memcached 扩展只能用于 Linux系统,memcache 扩展既可以用于 windows 也可以用于 Linux。之所以 memcached扩展,只能用于 Linux是因为 它依赖于Linux下的 libmemcached 库。
  2. memcached扩展对 memcached 协议 的支持更完整。
  3. 当 Memcached::get() 方法返回 false时,有可能存储的值就是 false,或者memcache服务器中不存在该key的值,此时 可以调用 Memcached::getResultCode() 方法判断是值为 false,还是该key不存在;而 memcache 扩展的 Memcache::get() 方法,返回 false时,没法知道是哪种情况。
  4. memcached 扩展支持 Cas tokens,cas 用于解决多个进程同时修改相同数据的更新问题,在高并发下很有用。
  5. memcached扩展和 memcache 扩展的相同功能方法的参数可能不同,例如 Memcache::set()方法就比 Memcached::set() 方法多了个 $flag 参数。
  6. 在Ubuntu/Debian中,安装可使用 sudo apt-get install php5-memcached;安装 memcached 扩展,可使用 php5-memcache 安装 memcache 扩展。
  7. 更详细的区别,请看 stackflow的文章: http://stackoverflow.com/questions/1442411/when-should-i-use-memcache-instead-of-memcached
Contents