Här är mönstret som rekommenderas av Azure Redis Cache-teamet:
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;
}
}
Några viktiga punkter:
- Den använder Lazy
för att hantera trådsäker initiering - Den ställer in "abortConnect=false", vilket innebär att om det första anslutningsförsöket misslyckas, kommer ConnectionMultiplexer tyst att försöka igen i bakgrunden istället för att skapa ett undantag.
- Det gör den inte kontrollera egenskapen IsConnected, eftersom ConnectionMultiplexer automatiskt försöker igen i bakgrunden om anslutningen avbryts.