无法将值存储到memcache中

时间:2010-01-21 06:48:45

标签: memcached php

我在suse 10.1上运行apache + php + memcache。

我可以在端口11211上连接Ok到memcached,但我不能做getVersion,add,get等。

错误讯息:

  

[Thu Jan 21 14:38:15 2010] [错误] [客户端] PHP注意:Memcache :: add()[function.Memcache-add]:服务器localhost(tcp 11211)失败:读取行失败第13行/testmem/index.php中的流(0)

我该如何调试?

2 个答案:

答案 0 :(得分:1)

尝试使用127.0.0.1。 确保您的防火墙允许连接到端口11211。 确保您的Memcached服务器已在端口11211上启动并运行。

答案 1 :(得分:0)

您可能正在运行没有ASCII协议支持的memcached,例如运行:

$ memcached -B binary

如果是这种情况,请完全删除-B参数,PHP和telnet应该可以正常工作。

您的memcached也可能在启用SASL支持的情况下编译,这会禁用PHP连接到memcached所需的ASCII协议。

这可以解释为什么它正在运行,但你不能通过telnet(或PHP)发出ASCII命令。

您可以通过运行以下来测试:

$ memcached -S

如果未使用SASL编译memcached,您应该看到此输出: “此服务器不是使用SASL支持构建的。”