我使用的是Laravel 5.2,并具有多服务器自动化的体系结构。我想在集中位置进行会话和缓存。我想使用AWS Elasticache。
我已经设置了一个具有以下选项的Elasticache redis群集:
参数组:default.redis.3.2.cluster.on碎片:3总节点:9
在Laravel会话配置中,我将Redis设置为会话驱动程序。
在设置redis配置的数据库中,我使用了以下内容:
redis_host = my_aws_elasticache_configuration_endpointredis_password = nullredis_port = 6379。
当我尝试使用它时,我会收到以下错误:
移动13841 Some_ip_address_of_aws:6379
我尝试使用本地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)],
],