Add RedisConnection class for managing Redis connections
Some checks are pending
CI / release (push) Waiting to run
CI / debug (push) Waiting to run
CI / check-phpunit (push) Waiting to run
CI / check-phpdoc (push) Waiting to run
CI / generate-phpdoc (push) Blocked by required conditions
CI / test (push) Blocked by required conditions
CI / release-documentation (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
Some checks are pending
CI / release (push) Waiting to run
CI / debug (push) Waiting to run
CI / check-phpunit (push) Waiting to run
CI / check-phpdoc (push) Waiting to run
CI / generate-phpdoc (push) Blocked by required conditions
CI / test (push) Blocked by required conditions
CI / release-documentation (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions
This commit is contained in:
parent
d28d4d06f2
commit
865b0c1b8e
1 changed files with 43 additions and 0 deletions
43
src/FederationServer/Classes/RedisConnection.php
Normal file
43
src/FederationServer/Classes/RedisConnection.php
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace FederationServer\Classes;
|
||||||
|
|
||||||
|
use Redis;
|
||||||
|
use FederationServer\Classes\Configuration;
|
||||||
|
use FederationServer\Classes\Configuration\RedisConfiguration;
|
||||||
|
|
||||||
|
class RedisConnection
|
||||||
|
{
|
||||||
|
private static ?Redis $redis = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the Redis connection instance. If it does not exist, create it using the configuration.
|
||||||
|
*
|
||||||
|
* @return Redis|null Returns Redis instance if enabled, otherwise null.
|
||||||
|
* @throws \RedisException
|
||||||
|
*/
|
||||||
|
public static function getConnection(): ?Redis
|
||||||
|
{
|
||||||
|
if (self::$redis === null)
|
||||||
|
{
|
||||||
|
$redisConfig = Configuration::getRedisConfiguration();
|
||||||
|
|
||||||
|
if (!$redisConfig->isEnabled())
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$redis = new Redis();
|
||||||
|
$redis->connect($redisConfig->getHost(), $redisConfig->getPort());
|
||||||
|
if ($redisConfig->getPassword() !== null)
|
||||||
|
{
|
||||||
|
$redis->auth($redisConfig->getPassword());
|
||||||
|
}
|
||||||
|
$redis->select($redisConfig->getDatabase());
|
||||||
|
|
||||||
|
self::$redis = $redis;
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::$redis;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue