Memcached client库刚刚刚发布为稳定。它被digg使用(由Andrei Zmievski开发,现在不再使用digg),并且比旧的memcache客户端实现更多的
memcached protocol。 memcached最重要的特性有:
> Cas tokens.这使我的生活更容易,是一个容易的预防系统的陈旧的数据。每当你从缓存中取出一些东西,你可以接收一个cas令牌(一个双数)。您不能使用该令牌保存更新的对象。如果没有人在你的线程运行时更新该值,则交换将成功。否则,将创建一个较新的cas令牌,并且您被迫重新加载数据并使用新令牌重新保存。
>阅读callbacks是切片面包最好的事情。它已经简化了我的大部分代码。
> getDelayed()是一个很好的功能,可以减少你的脚本等待结果从服务器回来的时间。
>虽然memcached服务器应该是非常稳定的,它不是最快的。您可以使用二进制协议,而不是ASCII与较新的客户端。
>每当你将复杂数据保存到memcached中时,客户端总是使用该值进行序列化(这是很慢的),但现在使用memcached客户端你可以选择使用igbinary.到目前为止,我没有机会测试多少的性能增益这可以。
所有这些都足以让我切换到最新的客户端,并可以告诉你,它的工作原理像一个魅力。有对libmemcached库的外部依赖,但是已经设法安装它在Ubuntu和Mac OSX上,所以没有问题,到目前为止。
如果你决定更新到较新的库,我建议你更新到最新的服务器版本,以及它有一些不错的功能,以及。你需要安装libevent来编译,但在Ubuntu上没有什么麻烦。
我没有看到任何框架拾起新的memcached客户端迄今(虽然我不跟踪他们),但我认为Zend将很快上船。
更新
Zend Framework 2有一个Memcached适配器,可以找到here