Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

StackExchange.Redis com Azure Redis é inutilmente lento ou gera erros de tempo limite


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.