RedisConnectionException:.net核心连接到AWS中的Redis缓存

时间:2018-01-14 05:11:45

标签: asp.net-core redis

在AWS中连接到redis缓存时,我遇到以下错误。在localhost上它工作正常。任何建议都可能出错。

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

  

.Redis.RedisConnectionException:无法连接到   redis服务器;要创建断开的多路复用器,请禁用   AbortOnConnectFail。 PINGat上的SocketFailure   StackExchange.Redis.ConnectionMultiplexer.ConnectImpl(Func 1 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.Lazy 1.ViaFactory(LazyThreadSafetyMode mode)at at   System.Lazy 1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)at System.Lazy 1.CreateValue()在   TeamSports.Shared.CacheManager.RedisConnectionFactory.Connection()在   TeamSports.Shared.CacheManager.CacheManager..ctor(IConfigurationManager   configurationManager,IHostingEnvironment环境,ILogger`1   记录器

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

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

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