我正在开发Laravel应用程序。我使用Redis,为此使用AWS ElasticCache服务。我正在尝试从Laravel应用程序连接到Redis。但这是超时。这就是我所做的。
我通过运行以下命令安装了Predis库。
composer require predis/predis
然后,我在ElastiCache服务控制台中创建了Redis实例,允许AUTH设置我的密码令牌。
然后我在.env文件中设置变量。
CACHE_DRIVER=redis
REDIS_CLIENT=predis
REDIS_HOST=master.laravelredistest.8sm3xo.euw1.cache.amazonaws.com
REDIS_PASSWORD=mypassword
REDIS_PORT=6379
运行代码以连接到Redis时,出现以下错误。
Operation timed out [tcp://master.laravelredistest.8sm3xo.euw1.cache.amazonaws.com:6379]
我的配置缺少什么,我该如何解决?
我还更新了Redis的安全组,以允许入站规则中的EC2实例的安全组如下:
这次我收到此错误:
我编辑了Redis的SG,也添加了以下入站规则。
安全组也位于同一VPC中,如屏幕截图所示:
答案 0 :(得分:1)
这听起来像是导致超时的安全组问题。
Elasticache群集始终是私有的,因此,如果您使用的是公共IP地址,则需要将其更新为实例/子网/ VPC的私有IP地址范围。
Elasticache群集是VPC中的一种资源,因此需要允许网络传输才能访问该群集。
更多信息,请访问Accessing Your Cluster页面。
其他配置
这是问题。我还需要删除现有的Redis实例,并创建另一个未启用AUTH令牌的实例。