From ae97156836750f6c1fe5e17475406fa62d231d4e Mon Sep 17 00:00:00 2001 From: Mateusz Charytoniuk Date: Mon, 22 Apr 2024 21:31:35 +0200 Subject: [PATCH] fix: redis session gc --- src/Session.php | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/Session.php b/src/Session.php index fca4f72..f0af013 100644 --- a/src/Session.php +++ b/src/Session.php @@ -5,7 +5,6 @@ namespace Distantmagic\Resonance; use Ds\Map; -use Redis; readonly class Session { @@ -24,7 +23,12 @@ public function __construct( public function persist(): void { - $this->getRedisConnection()->set( + $redisConnection = new RedisConnection( + $this->redisConnectionPoolRepository, + $this->getRedisPrefix(), + ); + + $redisConnection->redis->set( $this->id, $this->serializer->serialize($this->data->toArray()) ); @@ -32,7 +36,12 @@ public function persist(): void private function getPersistedData(): mixed { - $storedValue = $this->getRedisConnection()->get($this->id); + $redisConnection = new RedisConnection( + $this->redisConnectionPoolRepository, + $this->getRedisPrefix(), + ); + + $storedValue = $redisConnection->redis->get($this->id); if (!is_string($storedValue) || empty($storedValue)) { return null; @@ -41,7 +50,7 @@ private function getPersistedData(): mixed return $this->serializer->unserialize($storedValue); } - private function getRedisConnection(): Redis + private function getRedisPrefix(): string { $redisPrefix = $this->redisConfiguration ->connectionPoolConfiguration @@ -49,12 +58,7 @@ private function getRedisConnection(): Redis ->prefix ; - $redisConnection = new RedisConnection( - redisConnectionPoolRepository: $this->redisConnectionPoolRepository, - redisPrefix: $redisPrefix.'session:', - ); - - return $redisConnection->redis; + return $redisPrefix.'.session'; } private function restoreSessionData(): array