RedisConnectionException : .net core 连接到 AWS 中的 Redis Cache



在AWS中连接到redis缓存时,我收到以下错误。在本地主机上,它工作正常。 任何人都可以建议出了什么问题。

我们在 AWS 上确实有 VPC,可以访问 VPC 等其他资源,但无法连接到 Redis 集群。

.Redis.RedisConnectionException:无法连接到 红地斯服务器;要创建断开连接的多路复用器,请禁用 AbortOnConnectFail.PINGat 上的套接字故障 StackExchange.Redis.ConnectionMultiplexer.ConnectImpl(Func 1 multiplexerFactory, TextWriter log) in c:codeStackExchange.RedisStackExchange.RedisStackExchangeRedisConnectionMultiplexer.cs:line 890at StackExchange.Redis.ConnectionMultiplexer.Connect(String configuration, TextWriter log) in c:codeStackExchange.RedisStackExchange.RedisStackExchangeRedisConnectionMultiplexer.cs:line 855at TeamSports.Shared.CacheManager.RedisConnectionFactory.<>cDisplayClass1_0.<.ctor>b0()at System.Lazy 1.ViaFactory(LazyThreadSafetyMode mode(at System.Lazy 1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)at System.Lazy 1.CreateValue((at TeamSports.Shared.CacheManager.RedisConnectionFactory.Connection((at TeamSports.Shared.CacheManager.CacheManager..ctor(IConfigurationManager 配置管理器, IHosting环境, ILogger'1 记录

您是否在 VPC 中使用托管在您自己的虚拟机上的 AWS 弹性缓存或 redis ?

如果 redis 是自托管的,请确保 Redis 服务器本身绑定在正确的地址上。它可能绑定到127.0.0.1这将阻止其他服务器与之通信。它必须绑定到0.0.0.0或内部非环回地址。

还要验证两个服务器之间的安全组规则是否允许 redis 计算机接受从服务器侦听的端口 Redis 上的连接(默认情况下为端口 6379(。如果您也使用 ElastiCache,这是有效的。

其次,由于从您的问题中还不完全清楚,您的软件是否期望在本地主机上出现不存在的 redis?您应该验证应用程序是否正在尝试访问正确的地址。

我通过配置安全规则解决了它。以下是详细信息:

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/AWSHowTo.ElastiCache.html

最新更新