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

In che modo ConnectionMultiplexer gestisce le disconnessioni?

Ecco il modello consigliato dal team 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.