• Модуль: cluster
  • Путь к файлу: ~/bitrix/modules/cluster/classes/general/redis_cache.php
  • Класс: CPHPCacheRedisCluster
  • Вызов: CPHPCacheRedisCluster::__construct
public function __construct($options = [])
{
	if (self::$engine == null)
	{
		static::LoadConfig();
		if (defined("BX_CLUSTER_GROUP"))
		{
			$this->bQueue = true;
		}

		$config = $this->configure();
		if ($config && is_array($config))
		{
			if (isset($config['failover']))
			{
				$this->failover = $config['failover'];
			}

			if (isset($config['timeout']))
			{
				$config['timeout'] = (float) $config['timeout'];
				if ($config['timeout'] > 0)
				{
					$this->timeout = $config['timeout'];
				}
			}

			if (isset($config["read_timeout"]))
			{
				$config['read_timeout'] = (float) $config['read_timeout'];
				if ($config['read_timeout'] > 0)
				{
					$this->readTimeout = $config['read_timeout'];
				}
			}
		}

		$connectionPool = Application::getInstance()->getConnectionPool();
		$connectionPool->setConnectionParameters(
			$this->getConnectionName(),
			[
				'className' => RedisConnection::class,
				'servers' => self::$servers,
				'timeout' => $this->timeout,
				'readTimeout' => $this->readTimeout,
				'serializer' => $config['serializer'],
				'failover' => $this->failover,
				'persistent' => $config['persistent'],
			]
		);

		/** @var RedisConnection $engineConnection */
		$engineConnection = $connectionPool->getConnection($this->getConnectionName());
		self::$engine = $engineConnection->getResource();
		self::$isConnected = $engineConnection->isConnected();
	}

	$this->sid = BX_REDIS_CLUSTER . $this->sid;
}