Laravel中的Elasticache PHP Redis AWS移动异常
我使用的是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地址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
我试着使用本地的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]
。