Laravel中的Elasticache PHP Redis AWS移动异常

Laravel中的Elasticache PHP Redis AWS移动异常,php,amazon-web-services,redis,laravel-5.2,amazon-elasticache,Php,Amazon Web Services,Redis,Laravel 5.2,Amazon Elasticache,我使用的是Laravel5.2,具有多服务器自动缩放的体系结构。我希望将会话和缓存放在一个集中的位置。我想用AWS elasticache来做同样的事情 我已设置了一个elasticache Redis群集,该群集具有以下选项: 参数组:default.redis.3.2.cluster.on 碎片:3 节点总数:9 在laravel会话配置中,我将redis设置为会话驱动程序 在设置redis配置的database.php中,我使用了以下方法: REDIS\u HOST=my\u aws\u

我使用的是Laravel5.2,具有多服务器自动缩放的体系结构。我希望将会话和缓存放在一个集中的位置。我想用AWS elasticache来做同样的事情

我已设置了一个elasticache Redis群集,该群集具有以下选项:

参数组:default.redis.3.2.cluster.on 碎片:3 节点总数:9

在laravel会话配置中,我将redis设置为会话驱动程序

在设置redis配置的database.php中,我使用了以下方法:

REDIS\u HOST=my\u aws\u elasticache\u配置\u端点 REDIS_PASSWORD=null REDIS_端口=6379 .

当我尝试使用它时,会出现以下错误:

移动了13841个aws:6379的ip地址


我试着使用本地的redis,效果很好,predis工作正常。我试图在线查看解决方案,但无法获得解决方案。我相信配置端点正在尝试将redis连接重定向到我拥有的9个节点中的可用节点url。然而,我已经预料到AWS应该在内部执行,而不是抛出异常。有人能帮我吗?

我终于得到了答案,我们需要在数据库设置中打开群集模式,并将新群集选项设置为redis。这是database.php中的redis配置的外观:

'redis' => [
    'client' => 'predis',
    'options' => [
        'cluster' => 'redis',
    ],
    'clusters' => [
        'default' => [
            [
                'host' => env('REDIS_HOST', 'localhost'),
                'password' => env('REDIS_PASSWORD', null),
                'port' => env('REDIS_PORT', 6379),
                'database' => 0,
            ],
        ],
    ],
],
如果您有密码,则可以将选项数组替换为:

 'options' => [
        'cluster' => 'redis',
        'parameters' => ['password' => env('REDIS_PASSWORD', null)],
    ],

一句至理名言:如果您为Redis启用TLS(传输中的加密),您还需要在
参数
数组中有
'scheme'=>env('Redis_scheme','tcp')
。在
.env
中将其设置为“tls”。如果您使用的是AWS Elasticache,那么在
选项
数组中也需要
'ssl'=>['verify\u peer'=>false]