Hier is het patroon dat wordt aanbevolen door het Azure Redis Cache-team:
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;
}
}
Een paar belangrijke punten:
- Het gebruikt Lazy
om thread-veilige initialisatie af te handelen - Het stelt "abortConnect=false" in, wat betekent dat als de eerste verbindingspoging mislukt, de ConnectionMultiplexer het stilletjes opnieuw op de achtergrond probeert in plaats van een uitzondering te maken.
- Het doet niet controleer de eigenschap IsConnected, aangezien ConnectionMultiplexer het automatisch opnieuw op de achtergrond probeert als de verbinding wordt verbroken.