Use a random IP when a host has several IPs.

Using gethostbyname, we will reuse the same (first) IP address for
each request. Here, we choose the IP we use randomly.

This is practical in a case where we have multiple redis read-only
slaves that can't invidually support the full application load, but are
accessible through a single hostname.
This commit is contained in:
Thomas Orozco
2013-05-11 14:04:49 -07:00
parent d6fa4a3292
commit d45ce35923
@@ -236,10 +236,10 @@ class PhpiredisConnection extends AbstractConnection
$host = $parameters->host;
if (ip2long($host) === false) {
if (($address = gethostbyname($host)) === $host) {
if (($addresses = gethostbynamel($host)) === false) {
$this->onConnectionError("Cannot resolve the address of $host");
}
return $address;
return $addresses[array_rand($addresses)];
}
return $host;