diff --git a/src/Illuminate/Cache/RedisStore.php b/src/Illuminate/Cache/RedisStore.php index 4f18dcf5d1b9..d7972768fe4f 100755 --- a/src/Illuminate/Cache/RedisStore.php +++ b/src/Illuminate/Cache/RedisStore.php @@ -14,6 +14,7 @@ class RedisStore extends TaggableStore implements LockProvider { use RetrievesMultipleKeys { + many as private manyAlias; putMany as private putManyAlias; } @@ -92,6 +93,11 @@ public function many(array $keys) $connection = $this->connection(); + // PredisClusterConnection does not support reading multiple values if the keys hash differently... + if ($connection instanceof PredisClusterConnection) { + return $this->manyAlias($keys); + } + $values = $connection->mget(array_map(function ($key) { return $this->prefix.$key; }, $keys)); diff --git a/tests/Integration/Cache/MemoizedStoreTest.php b/tests/Integration/Cache/MemoizedStoreTest.php index e9ec1b435d51..74022ea8527d 100644 --- a/tests/Integration/Cache/MemoizedStoreTest.php +++ b/tests/Integration/Cache/MemoizedStoreTest.php @@ -13,8 +13,6 @@ use Illuminate\Cache\Events\WritingKey; use Illuminate\Contracts\Cache\Store; use Illuminate\Foundation\Testing\Concerns\InteractsWithRedis; -use Illuminate\Redis\Connections\PhpRedisClusterConnection; -use Illuminate\Redis\Connections\PredisClusterConnection; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Config; use Illuminate\Support\Facades\Event; @@ -33,14 +31,9 @@ protected function setUp(): void $this->setUpRedis(); - $connection = $this->app['redis']->connection(); - $this->markTestSkippedWhen( - $connection instanceof PhpRedisClusterConnection || $connection instanceof PredisClusterConnection, - 'flushAll and many currently not supported for Redis Cluster connections', - ); - Config::set('cache.default', 'redis'); - Redis::flushAll(); + Redis::connection(Config::get('cache.stores.redis.connection'))->flushDb(); + Redis::connection(Config::get('cache.stores.redis.lock_connection'))->flushDb(); } protected function tearDown(): void