Oto zalecany wzorzec z dokumentacji 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;
}
}
Kilka ważnych punktów:
- Używa Lazy
do obsługi bezpiecznej wątkowo inicjalizacji - Ustawia "abortConnect=false", co oznacza, że jeśli początkowa próba połączenia się nie powiedzie, ConnectionMultiplexer po cichu ponawia próbę w tle, zamiast zgłaszać wyjątek.
- To nie sprawdź właściwość IsConnected, ponieważ ConnectionMultiplexer automatycznie ponawia próbę w tle, jeśli połączenie zostanie zerwane.