From 96a6307ff828ffb751f6ed44a9de4db040c68dc8 Mon Sep 17 00:00:00 2001 From: Zankaria Date: Mon, 28 Oct 2024 22:21:33 +0100 Subject: [PATCH] RedisCacheDriver.php: use extension provided serialization --- inc/Data/Driver/RedisCacheDriver.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/inc/Data/Driver/RedisCacheDriver.php b/inc/Data/Driver/RedisCacheDriver.php index 8f3e3dc8..9c76d52d 100644 --- a/inc/Data/Driver/RedisCacheDriver.php +++ b/inc/Data/Driver/RedisCacheDriver.php @@ -14,6 +14,9 @@ class RedisCacheDriver implements CacheDriver { if ($password) { $this->inner->auth($password); } + if (!$this->inner->setOption(\Redis::OPT_SERIALIZER, \Redis::SERIALIZER_JSON)) { + throw new \RuntimeException('Unable to configure Redis serializer'); + } if (!$this->inner->select($database)) { throw new \RuntimeException('Unable to connect to Redis!'); } @@ -26,14 +29,14 @@ class RedisCacheDriver implements CacheDriver { if ($ret === false) { return null; } - return \json_decode($ret, true); + return $ret; } public function set(string $key, mixed $value, mixed $expires = false): void { if ($expires === false) { - $this->inner->set($this->prefix . $key, \json_encode($value)); + $this->inner->set($this->prefix . $key, $value); } else { - $this->inner->setEx($this->prefix . $key, $expires, \json_encode($value)); + $this->inner->setEx($this->prefix . $key, $expires, $value); } }