我正在使用Laravel5.2,并且有一个多服务器自动标度的体系结构。我想让会话和缓存集中在一个位置。我也想使用AWS弹奏缓存。
我已经设置了一个具有以下选项的elasticache集群:
参数组: default.redis.3.2.cluster.on碎片:3个总节点:9个
在laravel会话配置中,我已经将redis设置为会话驱动程序。
在设置redis配置的database.php中,我使用了以下方法:
REDIS_HOST=my_aws_elasticache_configuration_endpoint REDIS_PASSWORD=null REDIS_PORT=6379 .
当我尝试使用它时,我会得到以下错误:
移动13841 some_ip_address_of_aws:6379
我试过用本地的红宝石,所以predis的工作正常。我试着在网上查看解决方案,但无法得到解决方案。我相信配置端点正在尝试将redis连接重定向到我拥有的9个节点中的一个可用节点url。但是,我已经预料到AWS应该在内部完成它,而不是抛出异常。有谁可以帮我?
发布于 2017-09-22 07:38:24
我终于得到了答案,我们需要在数据库设置中启用集群模式,并将新的集群选项设置为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)],
],https://stackoverflow.com/questions/46357691
复制相似问题