在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.Lazy1.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 记录器
答案 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