PHP有两个memcached的扩展,其中一个较新的扩展也叫做memcached,跟memcached服务程序同名,所以有些混淆。

今天下载最新的扩展memcached-2.0.0b2.tgz, 编译的时候出现错误,问题是php_memcached.c中MEMCACHED_BEHAVIOR_TCP_KEEPALIVE没有定义。经google发现是MEMCACHED_BEHAVIOR_TCP_KEEPALIVE应该是在libmemcached中定义的,但在libmemcached的头文件中并也没有找到该常量。

最后发现原来是系统安装的libmemcached版本太老了,该版本是通过yum安装的。因此只有下载新的libmemcached,我下载的是 libmemcached-0.50,而不是最新的0.51,因为最新版有一个bug而无法编译完成。

至于php-memcached和memcache差别,参考memcache v.s. memcached