From ce5b7edd5cdf669e22bc8ce4269abafc3f64df88 Mon Sep 17 00:00:00 2001 From: meirzamoodle Date: Thu, 28 Mar 2024 09:17:50 +0700 Subject: [PATCH] MDL-81366 redis: Remove the named parameters Unfortunately, the read_timeout named parameter was not recognized on some machines. To avoid such errors, this patch removed the named parameter on a single Redis connect() and the Redis cluster. --- cache/stores/redis/lib.php | 25 +++---------------------- lib/classes/session/redis.php | 20 +++----------------- 2 files changed, 6 insertions(+), 39 deletions(-) diff --git a/cache/stores/redis/lib.php b/cache/stores/redis/lib.php index 07fb02b7b0a..e2853d5d01b 100644 --- a/cache/stores/redis/lib.php +++ b/cache/stores/redis/lib.php @@ -215,8 +215,6 @@ class cachestore_redis extends cache_store implements cache_is_key_aware, cache_ // Set Redis server(s). $servers = explode("\n", $configuration['server']); $trimmedservers = []; - // print_r($configuration); - // print_r($servers); foreach ($servers as $server) { $server = strtolower(trim($server)); if (!empty($server)) { @@ -256,32 +254,15 @@ class cachestore_redis extends cache_store implements cache_is_key_aware, cache_ } // Connect to redis. $redis = null; - // print_r($trimmedservers); - // exit; try { // Create a $redis object of a RedisCluster or Redis class. if ($clustermode) { - $redis = new RedisCluster( - name: null, - seeds: $trimmedservers, - timeout: 1, - read_timeout: 1, - persistent: true, - auth: $password, - context: !empty($opts) ? $opts : null, - ); + $redis = new RedisCluster(null, $trimmedservers, 1, 1, true, $password, !empty($opts) ? $opts : null); } else { // We only need the first record for the single redis. list($server, $port) = explode(':', $trimmedservers[0]); $redis = new Redis(); - $redis->connect( - host: $server, - port: $port, - timeout: 1, - retry_interval: 100, - read_timeout: 1, - context: $opts, - ); + $redis->connect($server, $port, 1, null, 100, 1, $opts); if (!empty($password)) { $redis->auth($password); } @@ -306,7 +287,7 @@ class cachestore_redis extends cache_store implements cache_is_key_aware, cache_ } $this->isready = true; } catch (RedisException | RedisClusterException $e) { - $server = $clustermode ? implode(',', $trimmedservers) : $trimmedservers[0].':'.$port; + $server = $clustermode ? implode(',', $trimmedservers) : $server.':'.$port; debugging("Failed to connect to Redis at {$server}, the error returned was: {$e->getMessage()}"); $this->isready = false; } diff --git a/lib/classes/session/redis.php b/lib/classes/session/redis.php index ffbfc69088e..c3614a4a113 100644 --- a/lib/classes/session/redis.php +++ b/lib/classes/session/redis.php @@ -257,27 +257,13 @@ class redis extends handler implements SessionHandlerInterface { try { // Create a $redis object of a RedisCluster or Redis class. if ($this->clustermode) { - $this->connection = new \RedisCluster( - name: null, - seeds: $trimmedservers, - timeout: 1, - read_timeout: 1, - persistent: true, - auth: $this->auth, - context: !empty($opts) ? $opts : null, - ); + $this->connection = new \RedisCluster(null, $trimmedservers, 1, 1, true, + $this->auth, !empty($opts) ? $opts : null); } else { $delay = rand(100, 500); list($server, $port) = explode(':', $trimmedservers[0]); $this->connection = new \Redis(); - $this->connection->connect( - host: $server, - port: $this->port ?? $port, - timeout: 1, - retry_interval: $delay, - read_timeout: 1, - context: $opts, - ); + $this->connection->connect($server, $this->port ?? $port, 1, null, $delay, 1, $opts); if ($this->auth !== '' && !$this->connection->auth($this->auth)) { throw new $exceptionclass('Unable to authenticate.'); }