servicestack,Redis,servicestack" /> servicestack,Redis,servicestack" />

Redis无法在繁忙负载中连接

Redis无法在繁忙负载中连接,redis,servicestack,Redis,servicestack,我得到这个错误。你的工作是什么 无法连接到位于127.0.0.1:6379的redis实例>>堆栈跟踪: 在ServiceStack.Redis.RedisNativeClient.Connect()的ServiceStack.Redis.RedisNativeClient.AssertConnectedSocket()上 在ServiceStack.Redis.RedisNativeClient.SendCommand(字节[][]cmdWithBinaryArgs)的ServiceStack

我得到这个错误。你的工作是什么

无法连接到位于127.0.0.1:6379的redis实例>>堆栈跟踪: 在ServiceStack.Redis.RedisNativeClient.Connect()的ServiceStack.Redis.RedisNativeClient.AssertConnectedSocket()上 在ServiceStack.Redis.RedisNativeClient.SendCommand(字节[][]cmdWithBinaryArgs)的ServiceStack.Redis.RedisNative ServiceStack.Redis.RedisClientList.GetEnumerator()中的Client.SendExpectLong(字节[][]cmdWithBinaryArgs) t Common.Tools.redidbHelper.checkListInt(字符串myKey,Int32 id)>>内部异常:消息:无连接 无法创建ld,因为目标计算机主动拒绝了它127.0.0.1:6379>内部异常:stacktrace:at S System.Net.Sockets.Socket.Connect(IPAddress[]地址,Int32端口)位于System.Net.Sockets.Socket.Connect(Stri 在ServiceStack.Redis.RedisNativeClient.Connect()当前堆栈:在System.Environment上。 位于System.Environment.get_StackTrace()的GetStackTrace(异常e,布尔needFileInfo)位于Common.Tools.e 位于Common.Tools.redidbHelper.checkListInt(字符串)的xtensionHelper.saveAsDebug(myEx除外,字符串aciklama)
myKey,Int32 id)

这是当RedisClient无法创建TCP连接时发生的情况。在这里抛出异常是正确的行为。

我自己也有这个问题。 您使用的Redis二进制文件是什么(来自哪个来源,GitHub,非官方版本)

我发现的原因是: 这实际上是Redis说它无法创建连接的方式。(所提供的跟踪也解释了这一点) 这应该是一个更明确的例外,说明这是来自Redis,而不是防火墙或任何IMHO

我猜您正在x64体系结构上运行32位内置二进制文件

如果您从链接下载版本: 并使用MS C编译器(如免费VS 2012 Express)构建它,您应该能够运行生成的二进制文件而不会出现此问题

我不能做出任何承诺,但这对我来说是有效的


编辑:另外,请确保以管理员身份启动redis服务器,并在防火墙中授予必要的权限,否则您将无法连接redis cli客户端到的服务器

我想可能是Redis的负载很忙。然后我以为是ServiceStack。但最终,Windows中的TCP发布速度不够快。TCP不会释放关闭的连接,直到条目的值过期。我将TcpTimeWaitDelay设置为45秒。并设置MaxUserPort

将端口范围调整为1025-64511

确保重新启动Windows


另请参见:

查看下面我的建议。请确保首先启动redis-server.exe,以便首先连接到服务器。