Memcached::touchByKey(): touch操作只支持二进制协议。

3

我正在尝试使用TouchByKey这个memcached函数,但是出现了如下警告:

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

我发现在客户端可以使用以下代码:$mc->setOption(\Memcached::OPT_BINARY_PROTOCOL, true);

Touch()也会遇到相同的问题。

我的问题是,我需要更改memcache服务器本身上的任何内容吗?为什么这需要二进制协议?为什么当前的ASCII协议没有提供此功能?

1个回答

3

在实现时,只为二进制协议完成了实现,但是没有特定的原因不能为ASCII协议完成。实现者可能只是不想花时间去做两个版本。我想指出的另一件事是,二进制协议比ASCII协议快得多。除非您有某些使用ASCII的特定原因,否则建议切换到二进制。此外,如果您想提交一个用于支持ASCII协议的memcached补丁,我相信该项目所有者会合并它。


谢谢您的回答。您能指导我如何设置二进制协议吗? - saada
你使用的是哪个PHP库?我相信有两个不同的库。 - mikewied
memcached(不是memcache) - saada
我不是 PHP 方面的专家,但我查看了 memcache php 的文档,没有找到任何设置客户端二进制模式的 API。不过,memcached php 客户端似乎支持此功能。 - mikewied

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接