diff options
author | Andrey Andreev <narf@devilix.net> | 2013-10-29 01:01:48 +0100 |
---|---|---|
committer | Andrey Andreev <narf@devilix.net> | 2013-10-29 01:01:48 +0100 |
commit | 98134d1108889df8c30d9ae05e2fd85b3b8ccb4a (patch) | |
tree | 865494dc7c7123d2ff41c2ae5957017af56b5c0b /system/libraries/Cache/drivers/Cache_redis.php | |
parent | 96185a3a0edcc27fa0af6df761d6353a2208ea9d (diff) | |
parent | 4118981aff99c3495a4cf63c96271959587e06ce (diff) |
Merge pull request #2705 from kakysha/develop
Better Redis connection handling
Diffstat (limited to 'system/libraries/Cache/drivers/Cache_redis.php')
-rw-r--r-- | system/libraries/Cache/drivers/Cache_redis.php | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/system/libraries/Cache/drivers/Cache_redis.php b/system/libraries/Cache/drivers/Cache_redis.php index 40823fcb4..f13e4479f 100644 --- a/system/libraries/Cache/drivers/Cache_redis.php +++ b/system/libraries/Cache/drivers/Cache_redis.php @@ -44,6 +44,7 @@ class CI_Cache_redis extends CI_Driver * @var array */ protected static $_default_config = array( + 'socket_type' => 'tcp', 'host' => '127.0.0.1', 'password' => NULL, 'port' => 6379, @@ -163,8 +164,7 @@ class CI_Cache_redis extends CI_Driver { if (extension_loaded('redis')) { - $this->_setup_redis(); - return TRUE; + return $this->_setup_redis(); } else { @@ -200,17 +200,33 @@ class CI_Cache_redis extends CI_Driver try { - $this->_redis->connect($config['host'], $config['port'], $config['timeout']); + if ($config['socket_type'] === 'unix') + { + $success = $this->_redis->connect($config['socket']); + } + else // tcp socket + { + $success = $this->_redis->connect($config['host'], $config['port'], $config['timeout']); + } + + if ( ! $success) + { + log_message('debug', 'Cache: Redis connection refused. Check the config.'); + return FALSE; + } } catch (RedisException $e) { - show_error('Redis connection refused. ' . $e->getMessage()); + log_message('debug', 'Cache: Redis connection refused ('.$e->getMessage().')'); + return FALSE; } if (isset($config['password'])) { $this->_redis->auth($config['password']); } + + return TRUE; } // ------------------------------------------------------------------------ |