Description
- Laravel Version: 9.44.0
- PHP Version: 8.1.12
- Database Driver & Version: phpredis (5.3.7 installed by pecl)
Description: configure native redis clustering results in error message
Steps To Reproduce:
- fresh laravel 9 installation
- Make sure to config
database.php
like this:
` 'redis' => [
'client' => env('REDIS_CLIENT', 'phpredis'),
'options' => [
'cluster' => env('REDIS_CLUSTER', 'redis'),
],
'clusters' => [
'default' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'username' => env('REDIS_USERNAME'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_DB', '0'),
],
'cache' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'username' => env('REDIS_USERNAME'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_CACHE_DB', '0'),
],
'session' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'username' => env('REDIS_USERNAME'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_CACHE_DB', '0'),
'prefix' => 's:'
],
],
],`
-
Env values (only relevant, skipped queue details f.e.):
- REDIS_HOST=redis-node-5
- SESSION_DRIVER=redis
- SESSION_CONNECTION=session
-
Run redis cluster (docker-compose.yaml)
I'm revceiving the following error message when trying to call default laravel mainpage
array_key_exists(): Argument #2 ($array) must be of type array, null given
Same goes for queue worker (on startup), including more readable details:
root@36f9e34e9915:/var/www/html# php artisan queue:Work INFO Processing jobs from the [{default}] queue. [2023-01-09 10:18:34] local.ERROR: array_key_exists(): Argument #2 ($array) must be of type array, null given {"exception":"[object] (TypeError(code: 0): array_key_exists(): Argument #2 ($array) must be of type array, null given at /var/www/html/vendor/laravel/framework/src/Illuminate/Collections/Arr.php:177) [stacktrace] #0 /var/www/html/vendor/laravel/framework/src/Illuminate/Collections/Arr.php(177): array_key_exists('url', NULL) #1 /var/www/html/vendor/laravel/framework/src/Illuminate/Collections/Arr.php(275): Illuminate\\Support\\Arr::exists(NULL, 'url') #2 /var/www/html/vendor/laravel/framework/src/Illuminate/Collections/Arr.php(599): Illuminate\\Support\\Arr::forget(NULL, Array) #3 /var/www/html/vendor/laravel/framework/src/Illuminate/Support/ConfigurationUrlParser.php(36): Illuminate\\Support\\Arr::pull(NULL, 'url') #4 /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php(186): Illuminate\\Support\\ConfigurationUrlParser->parseConfiguration(NULL) #5 /var/www/html/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php(133): Illuminate\\Redis\\RedisManager->parseConnectionConfiguration(NULL) #6 [internal function]: Illuminate\\Redis\\RedisManager->Illuminate\\Redis\\{closure}(NULL) [...redacted] "} TypeError array_key_exists(): Argument #2 ($array) must be of type array, null given at vendor/laravel/framework/src/Illuminate/Collections/Arr.php:177
Steps to
Please let me know if more information is required.
-Thanks for help and all of the work on laravel.