Created RedisFactory which will create the redis adapter for the redis lock

This commit is contained in:
Alejandro Celaya
2019-08-07 14:17:15 +02:00
parent dcfb12f454
commit 1e294fe1bc
6 changed files with 70 additions and 3 deletions

View File

@@ -0,0 +1,30 @@
<?php
declare(strict_types=1);
namespace Shlinkio\Shlink\Common\Cache;
use Predis\Client as PredisClient;
use Psr\Container\ContainerInterface;
use function array_shift;
use function count;
use function is_array;
use function is_string;
class RedisFactory
{
public const SERVICE_NAME = 'Shlinkio\Shlink\Common\Cache\Redis';
public function __invoke(ContainerInterface $container): PredisClient
{
$redisConfig = $container->get('config')['redis'] ?? [];
$servers = $redisConfig['servers'];
if (is_array($servers) && count($servers) === 1) {
$servers = array_shift($servers);
}
$options = is_string($servers) ? null : ['cluster' => 'redis'];
return new PredisClient($servers, $options);
}
}