Improve redis configuration

- basic authentication
- switch database (0 - 15)
This commit is contained in:
Philipp Holzer 2019-04-20 13:40:40 +02:00
parent 048501be34
commit fa71a9a0ce
No known key found for this signature in database
GPG key ID: 517BE60E2CE5C8A5
3 changed files with 27 additions and 5 deletions

View file

@ -20,11 +20,13 @@ class RedisCacheDriver extends AbstractCacheDriver implements IMemoryCacheDriver
private $redis;
/**
* @param string $redis_host
* @param int $redis_port
* @param string $redis_host
* @param int $redis_port
* @param int $redis_db (Default = 0, maximum is 15)
* @param string? $redis_pw
* @throws Exception
*/
public function __construct($redis_host, $redis_port)
public function __construct($redis_host, $redis_port, $redis_db = 0, $redis_pw = null)
{
if (!class_exists('Redis', false)) {
throw new Exception('Redis class isn\'t available');
@ -35,6 +37,14 @@ class RedisCacheDriver extends AbstractCacheDriver implements IMemoryCacheDriver
if (!$this->redis->connect($redis_host, $redis_port)) {
throw new Exception('Expected Redis server at ' . $redis_host . ':' . $redis_port . ' isn\'t available');
}
if (isset($redis_pw) && !$this->redis->auth($redis_pw)) {
throw new Exception('Cannot authenticate redis server at ' . $redis_host . ':' . $redis_port);
}
if ($redis_db !== 0 && !$this->redis->select($redis_db)) {
throw new Exception('Cannot switch to redis db ' . $redis_db . ' at ' . $redis_host . ':' . $redis_port);
}
}
/**