Laravel:连接 AWS Elasticache Redis 超时
Laravel: connecting the AWS ElasticCache Redis is timing out
我正在开发 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 中:
这听起来像是导致超时的安全组问题。
Elasticache 集群始终是私有的,因此如果您使用的是 public IP 地址,则需要将其更新为您的 instance/subnet/VPC.[=12= 的私有 IP 地址范围]
Elasticache 集群是您 VPC 中的一种资源,因此需要允许网络传输才能访问集群。
Accessing Your Cluster 页面中提供了更多信息。
Additional Configuration
这就是问题所在。我还需要删除现有的 Redis 实例并创建另一个没有启用 AUTH 令牌的实例。
我正在开发 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 中:
这听起来像是导致超时的安全组问题。
Elasticache 集群始终是私有的,因此如果您使用的是 public IP 地址,则需要将其更新为您的 instance/subnet/VPC.[=12= 的私有 IP 地址范围]
Elasticache 集群是您 VPC 中的一种资源,因此需要允许网络传输才能访问集群。
Accessing Your Cluster 页面中提供了更多信息。
Additional Configuration
这就是问题所在。我还需要删除现有的 Redis 实例并创建另一个没有启用 AUTH 令牌的实例。