Redis
 sql >> Database >  >> NoSQL >> Redis

StackExchange.Redis con Azure Redis è inutilmente lento o genera errori di timeout

Ecco il modello consigliato, dalla documentazione di 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;
    }
}

Alcuni punti importanti:

  • Utilizza Lazy per gestire l'inizializzazione thread-safe
  • Imposta "abortConnect=false", il che significa che se il tentativo di connessione iniziale fallisce, ConnectionMultiplexer riproverà silenziosamente in background anziché generare un'eccezione.
  • Non lo fa non controlla la proprietà IsConnected, poiché ConnectionMultiplexer riproverà automaticamente in background se la connessione viene interrotta.