Como o StackExchange.Redis usa vários pontos de extremidade e conexões?
Conforme explicado no StackExchange.RedisDocumentação básica, você pode conectar-se a vários servidores Redis e o StackExchange.Redis determinará automaticamente a configuração mestre / escravo. Citando a parte relevante:
Um cenário mais complicado pode envolver uma configuração de mestre / escravo; para esse uso, basta especificar todos os nós desejados que compõem esse nível de redisposição lógica (ele identificará automaticamente o mestre):
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("server1:6379,server2:6379");
Eu realizei um teste no qual desencadeei um failover, de modo que o mestre caísse um pouco, fazendo com que o velho escravo se tornasse o novo mestre e o velho mestre se tornasse o novo escravo. Percebi que, apesar dessa mudança,StackExchange.Redis continua enviando comandos para o antigo mestre, causando falha nas operações de gravação.
Perguntas sobre o que precede:
Como o StackExchange.Redis decide qual terminal usar?Como vários pontos de extremidade (como no exemplo acima) devem ser usados?Também notei que, para cada conexão, o StackExchange.Redis é aberto.dois conexões físicas, uma das quais é algum tipo de assinatura. Para que isso é usado exatamente? É usado pelas instâncias do Sentinel?