redis servicestack

redis c#



Redis no puede conectarse en la carga ocupada (3)

Esto es lo que ocurre cuando RedisClient no puede crear una conexión TCP. Lanzar una excepción es el comportamiento correcto aquí.

Me sale este error ¿Cuál es el trabajo?

No se pudo conectar a la instancia de redis en 127.0.0.1:6379 >> Seguimiento de pila: en ServiceStack.Redis.RedisNativeClient.Connect () en ServiceStack.Redis.RedisNativeClient.AssertConnectedSocket ()
en ServiceStack.Redis.RedisNativeClient.SendCommand (Byte [] [] cmdWithBinaryArgs) en ServiceStack.Redis.RedisNative Client.SendExpectLong (Byte [] [] cmdWithBinaryArgs) en ServiceStack.Redis.RedisClientList.GetEnumerator () en Common.Tools.RedisDBHelper. checkListInt (String myKey, Int32 id) >> Excepción interna: mensaje: No se pudo hacer ninguna conexión porque la máquina de destino la rechazó activamente. 127.0.0.1:6379 >> Excepción interna: stacktrace: en S ystem.Net.Sockets.Socket. Conecte (dirección IP [] direcciones, puerto Int32) en System.Net.Sockets.Socket.Connect (String host, puerto Int32) en ServiceStack.Redis.RedisNativeClient.Connect () CurrentStack: en System.Environment. GetStackTrace (Exception e, Boolean needFileInfo) en System.Environment.get_StackTrace () en Common.Tools.E xtensionHelper.saveAsDebug (Excepción myEx, String aciklama) en Common.Tools.RedisDBHelper.checkListInt (String myKey, Int32 id)


Pensé que podría ser que Redis tuviera una carga ocupada. Entonces pensé que era ServiceStack. Pero, en última instancia, fue que el TCP en Windows no se lanzó lo suficientemente rápido. TCP no libera las conexiones cerradas hasta que el valor de la entrada caduque. Configuré TcpTimeWaitDelay en 45 segundos. http://technet.microsoft.com/en-us/library/cc938217.aspx y establezca MaxUserPort http://mashijie.blogspot.com/2009/05/change-default-setting-of-tcp-ports.html

Ajuste el rango del puerto a 1025-64511

Asegúrate de reiniciar Windows

Consulte también: Límite de redis conexión / límite de tamaño de búfer superado


Yo tuve este problema yo mismo. ¿Qué binarios de Redis estás usando (de qué fuente, GitHub, versión no oficial)?

La razón que encontré fue: Esta es en realidad la forma en que Redis dice que no puede crear una conexión. (como la huella proporcionada también explica) Debería ser una excepción más clara que explica que esto proviene de Redis y no del cortafuegos o de algo en mi humilde opinión.

Supongo que está ejecutando un binario construido en 32 bits en una arquitectura x64.

Si descarga la versión del enlace: MsOpenTech Group y la compila utilizando un compilador MS C como el VS 2012 Express gratuito, debería poder ejecutar los binarios resultantes sin este problema.

No puedo hacer ninguna promesa, pero esto es lo que funcionó para mí.

EDITAR: Además, asegúrese de iniciar el servidor redis (como administrador) y otorgue los permisos necesarios en el firewall, ¡o no tendrá un servidor para conectar su cliente redis-cli!