2013-07-15 30 views
3

我试图用TouchByKey这是一个分布式缓存功能,但这样的警告弹出:的Memcached :: touchByKey():触摸仅支持二进制协议

Memcached::touchByKey(): touch is only supported with binary protocol

我发现我可以使用例如:客户端的$mc->setOption(\Memcached::OPT_BINARY_PROTOCOL, true);

同样的问题Touch()

我的问题是,我需要的内存缓存服务器本身的改变有什么事情发生?为什么这甚至需要二进制协议?为什么现在的ASCII协议没有这个功能?

回答

3

当实现完成时,它只对二进制协议完成,但没有具体理由为什么它不能为ASCII协议完成。实施者可能只是不想花时间做这两件事。我想说的另一件事是二进制协议比ASCII协议快得多。除非你有使用ASCII的某些特定原因,否则我建议只切换到二进制。另外,如果您想提交memcached的补丁以支持ASCII协议,我相信它会被项目所有者合并。

+0

感谢您的回答。你能指导我设置二进制协议吗? – saada

+0

您正在使用哪个PHP库?我相信有两个不同的图书馆。 – mikewied

+0

memcached(而不是memcache) – saada