【问题标题】:MemcachePool::get(): Server localhost (tcp 11211, udp 0) failed with: Network timeoutMemcachePool::get(): 服务器 localhost (tcp 11211, udp 0) 失败:网络超时
【发布时间】:2014-06-08 04:05:01
【问题描述】:

我使用 Memcache 和 PHP 已经很长时间了,一切都很好,但现在我每隔 10 到 15 分钟就会收到此错误。

MemcachePool::get(): Server localhost (tcp 11211, udp 0) failed with: Network timeout

我认为这可能是由于防火墙或类似的原因,所以我关闭了我的防火墙,但并没有停止发送此消息。

每次出现错误后,我都必须重新启动我的内存缓存。

在 Windows 7 机器上使用 PHP 5.4 MSVC9 TS 版本的 Memcache 不带 D。我不明白现在该如何处理这个Network Timeout 问题。有什么办法可以解决这个问题。

目前,我目前只有一台装有 windows 7 的本地机器,因此无法制作 Memcache 集群或安装 Memcache(D)。

不确定是内存缓存守护进程还是客户端问题。

【问题讨论】:

  • 您使用的是持久连接吗?我正在使用持久连接(带有pconnectaddServer$persistent arg),切换到connect 或使用false 作为持久arg,我不再有这个问题(到目前为止。 ..)。 Win 7 x86_64,PHP 5.5.9 x86 TS VC11 API=20121113,memcache 3.0.8 rev 329835,memcached-win64-1.4.4-14
  • @zamnuts 我不记得了,因为现在已经有 4 个月了,但当时我终于解决了。感谢您的友好评论。可能是其他人可以从中受益。
  • @AbdulJabbarDumrai 你是怎么解决的?您可以添加解决方案作为您自己问题的答案,谢谢

标签: php windows tcp memcached


【解决方案1】:

我遇到了同样的问题,在 Windows 10 上安装了 php,在 Ubuntu 上安装了 Memcached(在 Linux 的 Windows 子系统中运行)

我的情况是,问题在于 localhost 解析为 [::1]

>ping localhost
Pinging SURFACE-PRO-FRA [::1] with 32 bytes of data:

默认情况下,Memcached 仅侦听 127.0.0.1。

为了解决这个问题,你可以让 Memcached 在 ipv6 上也监听:

$ sudo vi /etc/memcached.conf

替换

-l 127.0.0.1

与:

-l 127.0.0.1,::1

然后

sudo service memcached restart

或者,让您的应用连接到 127.0.0.1 而不是 localhost

【讨论】:

    猜你喜欢
    • 2018-01-05
    • 1970-01-01
    • 2011-03-27
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    • 2011-06-30
    • 2017-01-30
    相关资源
    最近更新 更多