Merge pull request #89 from trimbletodd/master

Adding support for remote redis instances (such as redistogo) that require authentication
This commit is contained in:
Chris Boulton 2013-03-06 19:55:01 -08:00
commit 4cbf3c08c2

View File

@ -101,6 +101,7 @@ class Resque_Redis
} }
else { else {
$port = null; $port = null;
$password = null;
$host = $server; $host = $server;
// If not a UNIX socket path or tcp:// formatted connections string // If not a UNIX socket path or tcp:// formatted connections string
@ -111,8 +112,19 @@ class Resque_Redis
$port = $parts[1]; $port = $parts[1];
} }
$host = $parts[0]; $host = $parts[0];
}else if (strpos($server, 'redis://') !== false){
// Redis format is:
// redis://[user]:[password]@[host]:[port]
list($userpwd,$hostport) = explode('@', $server);
$userpwd = substr($userpwd, strpos($userpwd, 'redis://')+8);
list($host, $port) = explode(':', $hostport);
list($user, $password) = explode(':', $userpwd);
} }
$this->driver = new Credis_Client($host, $port); $this->driver = new Credis_Client($host, $port);
if (isset($password)){
$this->driver->auth($password);
}
} }
if ($this->database !== null) { if ($this->database !== null) {