sql >> Base de Datos >  >> NoSQL >> Redis

StackExchange.Redis con Azure Redis es increíblemente lento o arroja errores de tiempo de espera

Este es el patrón recomendado, de la documentación de Azure Redis Cache:

private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() => {
    return ConnectionMultiplexer.Connect("mycache.redis.cache.windows.net,abortConnect=false,ssl=true,password=...");
});

public static ConnectionMultiplexer Connection {
    get {
        return lazyConnection.Value;
    }
}

Algunos puntos importantes:

  • Utiliza Lazy para manejar la inicialización segura para subprocesos
  • Establece "abortConnect=false", lo que significa que si falla el intento de conexión inicial, ConnectionMultiplexer volverá a intentarlo silenciosamente en segundo plano en lugar de lanzar una excepción.
  • No no compruebe la propiedad IsConnected, ya que ConnectionMultiplexer volverá a intentarlo automáticamente en segundo plano si se interrumpe la conexión.