快速超时\ w memcache

时间:2011-04-25 15:58:53

标签: php memcached

如果我连接的memcached服务器不可用(无论出于何种原因),我正试图强制PHP的Memcache extension几乎立即超时。我想在这种情况下抛出异常(将在其他地方处理)。

我一直在寻找和尝试不同的事情而没有任何运气。我正在使用标准添加服务器(现在只有一个):

$this->memcache->addServer ( $server['host'], $server['port'] );

然后我杀死了memcached deamon(也尝试使用错误的端口和主机)并打开了我的页面。它只是加载了很长时间,然后nginx返回504 Gateway Time-out错误。

我怎么能告诉memcache客户端尝试,我不知道,1秒然后放弃,此时我应该能够以某种方式检测到超时。

最重要的是,如果我们的memcached服务器出现故障,我想尽快显示一个用户友好的错误页面(已经为未捕获的异常工作),并且在用户看到之前不要让用户等待30秒通用服务器错误。

2 个答案:

答案 0 :(得分:4)

请致电:

此外, this question 与您的完全相同。

答案 1 :(得分:3)

减少max_failover_attempts memcache模块配置参数的值,默认数量太高。

您还可以将超时指定为connect()方法的第3个参数:

$memcache->connect('memcache_host', 11211, $timeout);

但是默认超时应该已经设置为1秒。

另一个值得关注的地方是OS中的TCP超时参数。