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.