Redis 在负载繁忙时无法连接

标签 redis servicestack

我收到这个错误。解决方法是什么?

无法连接到位于 127.0.0.1:6379 的 redis 实例 >> 堆栈跟踪: 在 ServiceStack.Redis.RedisNativeClient.Connect() 在 ServiceStack.Redis.RedisNativeClient.AssertConnectedSocket()
在 ServiceStack.Redis.RedisNativeClient.SendCommand(Byte[][] cmdWithBinaryArgs) 在 ServiceStack.Redis.RedisNative ServiceStack.Redis.RedisClientList.GetEnumerator() 中的 Client.SendExpectLong(Byte[][] cmdWithBinaryArgs) t Common.Tools.RedisDBHelper.checkListInt(String myKey, Int32 id) >> 内部异常:消息:没有连接 ld 是因为目标机器主动拒绝它 127.0.0.1:6379>> 内部异常:stacktrace:在 S System.Net.Sockets.Socket.Connect(IPAddress[] 地址,Int32 端口)在 System.Net.Sockets.Socket.Connect(Stri ng 主机,Int32 端口)在 ServiceStack.Redis.RedisNativeClient.Connect()CurrentStack :在 System.Environment。 GetStackTrace(Exception e,Boolean needFileInfo)在 System.Environment.get_StackTrace() 在 Common.Tools.E xtensionHelper.saveAsDebug(异常 myEx,字符串 aciklama)在 Common.Tools.RedisDBHelper.checkListInt(字符串 myKey, Int32 id)

最佳答案

我想可能是Redis负载繁忙。然后我以为是ServiceStack。但归根结底,还是Windows中的TCP发布速度不够快。在条目的值过期之前,TCP 不会释放已关闭的连接。我将 TcpTimeWaitDelay 设置为 45 秒。 http://technet.microsoft.com/en-us/library/cc938217.aspx并设置 MaxUserPort http://mashijie.blogspot.com/2009/05/change-default-setting-of-tcp-ports.html

调整端口范围为1025-64511

确保重新启动 Windows

另请参阅:Redis connection/buffer-size limit exceeded

关于Redis 在负载繁忙时无法连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17213870/

相关文章:

redis - 如何获取Redis位图中设置位的所有位置?

django_rq 作业未添加到队列中

java - Java获取Redis当前订阅列表的方法

c# - ServiceStack Jsv 序列化程序无法反序列化 Dictionary<DateTime, ___>

unit-testing - 如何在 ServiceStack 中编写单元/集成测试

ServiceStack.net 使用附加参数实现 CustomAuthProvider?

python - 导入错误 : No module named redis_cache

Redis 集群 - 事务与 LUA 脚本,哪一个性能更好?

web-services - 使用 ServiceStack 访问 SOAP 网络服务

servicestack - 自托管安全问题?