tom at all dash community dot de からの PHP ste に関する代替ソリューションについてのコメントがあります。
http://php.net/manual/de/memcache.connect.php
MemCache-Server が利用可能かどうかを確認するための、それほど自明ではない方法があります。
($memCache->connect() == false)を使用すると、接続できない場合にタイムアウトが発生するまで待機します。トラフィックの多いサイトを持っている場合、これはオプションではないかもしれません. そのため、サーバーがダウンしている場合、すべてのリクエストでこのタイムアウトを待機するのを避け、代わりに X 秒ごとに 1 回だけ再接続を試みることができます。
もしそうなら、このコードは役立つかもしれません:
<?php
$memCache = new \Memcache();
$memCache->addServer($host, $port);
$stats = @$memCache->getExtendedStats();
$available = (bool) $stats["$host:$port"];
if ($available && @$memCache->connect($host, $port))
// MemCache is there
else
// go on without MemCache
?>
getExtendedStats() の結果は配列です。情報は MemCache 自体によってキャッシュされ、維持されます。サーバーが利用できない場合、結果は FALSE になります。
結果が false でなくても、サーバーがまだ利用できない場合があります。したがって、 connect() != false もチェックする必要がありますが、最初のチェックで TRUE が返された場合のみ、ほとんどの場合 1 秒のタイムアウトを回避できます。サーバーがそこにない場合、 getExtendedStats() と connect() の両方が通知/警告を発行します。したがって、両方の通話をミュートする必要があります。
この目的で getServerStatus() を使用しないでください。結果はサーバー起動時にキャッシュされ、その間にサーバーへの接続がいつ失われたか (または再確立されたか) を認識しません。