【问题标题】:RedisConnectionException : .net core connecting to Redis Cache in AWSRedisConnectionException:.net 核心连接到 AWS 中的 Redis 缓存
【发布时间】:2018-01-16 21:28:14
【问题描述】:

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

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

.Redis.RedisConnectionException:无法连接到 redis 服务器;要创建断开连接的多路复用器,请禁用 中止连接失败。 PINGat 上的 SocketFailure StackExchange.Redis.ConnectionMultiplexer.ConnectImpl(Func1 multiplexerFactory, TextWriter log) in c:\code\StackExchange.Redis\StackExchange.Redis\StackExchange\Redis\ConnectionMultiplexer.cs:line 890at StackExchange.Redis.ConnectionMultiplexer.Connect(String configuration, TextWriter log) in c:\code\StackExchange.Redis\StackExchange.Redis\StackExchange\Redis\ConnectionMultiplexer.cs:line 855at TeamSports.Shared.CacheManager.RedisConnectionFactory.<>cDisplayClass1_0.<.ctor>b0()at System.Lazy1.ViaFactory(LazyThreadSafetyMode 模式)at System.Lazy1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)at System.Lazy1.CreateValue()at TeamSports.Shared.CacheManager.RedisConnectionFactory.Connection()at TeamSports.Shared.CacheManager.CacheManager..ctor(IConfigurationManager configurationManager、IHostingEnvironment 环境、ILogger`1 记录器

【问题讨论】:

    标签: asp.net-core redis


    【解决方案1】:

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

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

    还要验证两台服务器之间的安全组规则是否允许 redis 机器接受来自您服务器的 redis 端口上的连接(默认为端口 6379)。如果您也使用 ElastiCache,这也是有效的。

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

    【讨论】:

    • 感谢您的回复,我很抱歉没有回答这个问题,我能够解决它。 Beanstalk 访问了我的缓存,安全规则没有到位,这就是这个问题的原因。
    【解决方案2】:

    我通过配置安全规则解决了这个问题。详情如下:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-09
      • 1970-01-01
      • 2021-11-21
      • 2017-07-13
      • 1970-01-01
      • 2020-01-07
      相关资源
      最近更新 更多