public static function getServer($key)
{
$key = self::hash($key);
$left = 0;
$right = self::$_serverCt - 1;
$index = 0;
while ($left < $right - 1) {
$middle = (int) (($left + $right) / 2);
if ($key <= self::$_servers[$left]['id']) {
$index = $left;
break;
}
if ($key >= self::$_servers[$right]['id']) {
$index = $right;
break;
}
$t = self::$_servers[$middle]['id'];
if ($key == $t) {
$index = $middle;
}
if ($key > $t) {
$left = $middle;
$index = $right;
} else {
$right = $middle;
$index = $middle;
}
}
$server = self::$_servers[$index];
$server['index'] = $index;
return $server;
}