Voici le modèle recommandé, issu de la documentation 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;
}
}
Quelques points importants :
- Il utilise Lazy
pour gérer l'initialisation thread-safe - Il définit "abortConnect=false", ce qui signifie que si la tentative de connexion initiale échoue, le ConnectionMultiplexer réessayera silencieusement en arrière-plan plutôt que de lever une exception.
- Ce n'est pas vérifiez la propriété IsConnected, car ConnectionMultiplexer réessayera automatiquement en arrière-plan si la connexion est interrompue.