Laravel+phpRedis多连接异常:调用自定义连接仍返回默认连接
Laravel多Redis连接配置问题修复
1. 配置文件字段错误
你的database.php中自定义连接redisCustomConnection的port配置存在明显错误:
'redisCustomConnection' => [ // ... 'port' => env('REDIS_CUSTOM_HOST', '6379'), // 这里用错了env键 // ... ],
此处port对应的环境变量写成了REDIS_CUSTOM_HOST,导致端口读取的是主机地址的值,若环境变量未正确加载则 fallback 到默认的6379。
修复: 将port的环境变量键改为REDIS_CUSTOM_PORT:
'redisCustomConnection' => [ 'url' => env('REDIS_CUSTOM_URL'), 'host' => env('REDIS_CUSTOM_HOST', '127.0.0.1'), 'password' => env('REDIS_CUSTOM_PASSWORD', null), 'port' => env('REDIS_CUSTOM_PORT', '6379'), // 修正此处 'database' => env('REDIS_CUSTOM_DB', '0'), ],
2. .env文件配置问题
你的.env文件存在重复定义和缺失项:
REDIS_CUSTOM_URL=mycustom value REDIS_CUSTOM_HOST=mycustom value REDIS_CUSTOM_PASSWORD=mycustom value REDIS_CUSTOM_HOST=mycustom value // 重复定义 REDIS_CUSTOM_DB=mycustom value // 缺少REDIS_CUSTOM_PORT
重复的REDIS_CUSTOM_HOST可能导致环境变量读取异常,同时缺少自定义连接的端口配置项。
修复: 删除重复项并补充端口配置:
REDIS_CUSTOM_URL=your-custom-url REDIS_CUSTOM_HOST=your-custom-host REDIS_CUSTOM_PASSWORD=your-custom-password REDIS_CUSTOM_PORT=your-custom-port // 添加此项 REDIS_CUSTOM_DB=your-custom-db
3. 清除配置缓存
Laravel会缓存配置文件,修改配置后必须清除缓存才能生效:
php artisan config:clear
完成以上步骤后,重新调用Redis::connection('redisCustomConnection')即可获取正确的自定义连接。
内容的提问来源于stack exchange,提问作者Judge Jules
相关产品推荐
相关产品推荐

