Aqui está o padrão recomendado, da documentação do Cache Redis do Azure:
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;
}
}
Alguns pontos importantes:
- Ele usa Lazy
para lidar com inicialização segura para thread - Ele define "abortConnect=false", o que significa que, se a tentativa de conexão inicial falhar, o ConnectionMultiplexer tentará novamente silenciosamente em segundo plano, em vez de gerar uma exceção.
- Não não verifique a propriedade IsConnected, pois ConnectionMultiplexer tentará novamente em segundo plano se a conexão for interrompida.