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

Como o StackExchange.Redis usa vários terminais e conexões?


O que deve acontecer é que ele usa uma série de coisas (em particular a configuração de replicação definida) para determinar qual é o mestre, e direcionar o tráfego no servidor apropriado (respeitando o parâmetro "servidor", que tem como padrão "preferir mestre", mas que sempre envia operações de gravação para um mestre).

Se um erro "não é possível gravar em um escravo somente leitura" (não me lembro do texto exato) for recebido, ele tentará restabelecer a configuração e deveria mude automaticamente para respeitar isso. Infelizmente, o redis não transmite alterações de configuração, portanto, a biblioteca não pode detectar isso com antecedência.

Observe que se você usar os métodos da biblioteca para alterar o mestre, ele pode explore o pub/sub para detectar essa alteração imediata e automaticamente.

Re a segunda conexão:isso seria para pub/sub; ele ativa isso com antecedência, pois, por padrão, ele tenta ouvir as transmissões de configuração específicas da biblioteca.