Introdução
O Redis é um banco de dados de código aberto, muito utilizado em aplicações que necessitam de alto desempenho e baixa latência. Com o pacote StackExchange.Redis
, é possível estabelecer conexões avançadas com o Redis, como instâncias do Redis com TLS ativado, implantações de cluster Redis e implantações do Redis Sentinel.
O Redis com TLS ativado é uma opção para quem deseja adicionar uma camada extra de segurança na comunicação com o banco de dados. Já as implantações de cluster Redis são utilizadas quando se precisa lidar com grande quantidade de dados e alta disponibilidade, permitindo que as operações sejam distribuídas entre vários nós. Por fim, as implantações do Redis Sentinel são utilizadas para monitorar e gerenciar instâncias Redis distribuídas, possibilitando uma maior disponibilidade e tolerância a falhas. Cada tipo de conexão possui suas próprias particularidades e benefícios, tornando-se uma opção interessante para diferentes cenários.
Conectando-se a instâncias do Redis com TLS ativado.
Conectando no .NET Core (3.1, 5, 6, 7+)
SslClientAuthenticationOptions
foi adicionado como uma forma opcional de configurar um SslStream
. Isso fornece uma grande flexibilidade extra quando se trata de definir configurações de TLS Redis.
Usando o delegado SslClientAuthenticationOptions
em ConfigurationOptions
, você pode configurar:
- Protocolos SSL/TLS permitidos
- Conjuntos de cifras TLS/SSL permitidos na negociação de cifras
- Delegado de seleção de certificado
- Delegado de validação de certificado
options.SslClientAuthenticationOptions = new Func<string, SslClientAuthenticationOptions>(
hostName => new SslClientAuthenticationOptions
{
EnabledSslProtocols = SslProtocols.Tls12 | SslProtocols.Tls13
});
Conectando-se a implantações de cluster Redis.
Das Conexões Redis "avançadas", o cluster é provavelmente o mais fácil de entender. Conectar-se a uma instância do OSS Cluster é o mesmo que conectar-se a uma instância autônoma do Redis. A única exceção é que, ao listar endpoints, você desejará usar mais de um. Isso ocorre para que, se o endpoint que você está tentando alcançar tiver falhado, o multiplexador ainda tenha a chance de se conectar às outras instâncias mestre.
Um exemplo de ConfigurationOptions
para uma instância de cluster pode parecer algo parecido com isso, observe como a coleção Endpoints usa vários endpoints que o ConnectionMultiplexer
pode usar como backups se um dos endpoints falhar ao responder (possivelmente porque falhou).
var options = new ConfigurationOptions
{
EndPoints = new EndPointCollection{"redis-1:6379", "redis-2:6379", "redis-3:6379"}
};
Conectando-se a implantações do Redis Sentinel
Conectar-se ao Redis Sentinel é um pouco diferente de conectar-se a outras instâncias do Redis.
A principal diferença é que, em vez de se conectar ao servidor mestre, você se conecta a uma das 'sentinelas' - as instâncias do Redis responsáveis por monitorar seu mestre e réplicas, detectar failovers e promover novos mestres. Além disso, você deve especificar o ServiceName
, que corresponde ao nome mestre que você instrui os sentinelas a monitorar ao configurá-los.
var options = new ConfigurationOptions
{
EndPoints = new EndPointCollection{"sentinel-1:26379"},
ServiceName = "sentinel"
};
var conn = ConnectionMultiplexer.Connect(options);
Conclusão
O pacote StackExchange.Redis
oferece suporte a vários tipos de conexões avançadas do Redis, incluindo instâncias com TLS ativado, implantações de cluster Redis e implantações do Redis Sentinel. Com essas opções, os desenvolvedores têm flexibilidade para escolher a melhor abordagem de acordo com as necessidades do seu projeto.
Top comments (0)