在所有 dash community dot de 中有一条关于 PHP ste 的替代解决方案的评论
http://php.net/manual/de/memcache.connect.php
有一种不太明显的方法可以检查 MemCache-Server 是否可用。
如果无法连接,使用 ($memCache->connect() == false)将等待超时。如果您有一个高流量的网站,这可能不是一个选择。因此,当服务器关闭时,您可能希望避免在每个请求上等待此超时,而是尝试每 X 秒仅重新连接一次。
如果是这样,此代码可能会有所帮助:
<?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。
即使结果不是假的,服务器也可能仍然不可用。因此,您也需要检查 connect() != false,但前提是第一次检查返回 TRUE,从而在大多数情况下避免 1 秒超时。如果服务器不存在,getExtendedStats() 和 connect() 都会发出通知/警告。因此,您必须将两个呼叫静音。
不要为此目的使用 getServerStatus():结果在服务器启动时被缓存,并且无法识别到服务器的连接何时丢失(或重新建立)。