AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 815764
Accepted
Mat
Mat
Asked: 2016-11-19 08:13:30 +0800 CST2016-11-19 08:13:30 +0800 CST 2016-11-19 08:13:30 +0800 CST

Cluster Redis: mínimo de 3 nós principais?

  • 772

Estou avaliando os recursos de cluster do Redis 3 (estou usando o Redis 2 autônomo no momento), então estou lendo as informações em http://redis.io/topics/cluster-tutorial .

Neste documento eu li uma informação muito importante:

Observe que o cluster mínimo que funciona conforme o esperado requer pelo menos três nós principais. Para seus primeiros testes, é altamente recomendável iniciar um cluster de seis nós com três mestres e três escravos.

É realmente verdade? Na minha opinião, isso está correto se eu usar recursos de fragmentação (os dados são compartilhados entre os nós), mas e se eu não precisar e ficaria feliz em ter dados em apenas um nó?

Eu basicamente preciso de um mestre e dois escravos (para que o cluster fique ativo se um nó falhar), posso ter essa configuração em um ambiente de produção? Se sim, quais são as contra-indicações?

Muito obrigado pela sua ajuda!

cluster redis
  • 4 4 respostas
  • 32581 Views

4 respostas

  • Voted
  1. Dominic Scheirlinck
    2017-08-14T18:54:15+08:002017-08-14T18:54:15+08:00

    É realmente verdade?

    Não. Não é verdade . É uma recomendação forte (como você pode ver na linguagem "isso funciona conforme o esperado"; se você não espera que seus dados sejam duráveis ​​e espera que eles desapareçam, etc. - você pode configurar um único cluster de nó. Por que você faria, em vez de apenas desativar o modo de cluster... isso depende de você.)

    Portanto, sim, você pode configurar um cluster de nó único, mesmo que não seja recomendado (por todos os motivos mencionados em outras respostas e na documentação). Não há nada no código do cluster redis que o impeça, além de uma verificação no auxiliar redis-trib.rb que existe para dissuadir usuários ingênuos.

    Para contornar essa verificação e configurar um cluster de nó único (se tiver certeza de que é isso que deseja - lembre-se, quase certamente não é), você pode atribuir manualmente os fragmentos ao seu nó com CLUSTER ADDSLOTS 1 2 3 ...(etc, para todos os 16384 fragmentos). Ou use a versão Python do redis-trib que não possui a verificação de segurança de 3 nós ( redis-trib.py create 127.0.0.1:6379).

    • 7
  2. Best Answer
    Itamar Haber
    2016-11-19T12:10:56+08:002016-11-19T12:10:56+08:00

    É realmente verdade?

    Sim, é por isso que está na documentação :)

    Na minha opinião, isso está correto se eu usar recursos de fragmentação (os dados são compartilhados entre os nós), mas e se eu não precisar e ficaria feliz em ter dados em apenas um nó?

    Usar o Redis no modo de cluster significa sharding. Se você está satisfeito com uma única instância, simplesmente não use o cluster. Caso contrário, consulte a própria especificação do cluster para entender mais sobre as suposições subjacentes. Especificamente, no caso de configuração mínima de cluster, você desejará 3 mestres para garantir a disponibilidade do cluster no caso de uma partição, ou então você não poderá concordar com a maioria.

    • 6
  3. Daniel Carrasco
    2018-06-23T00:48:58+08:002018-06-23T00:48:58+08:00

    Eu sei que esta pergunta é antiga, mas se alguém precisar de uma configuração semelhante pode usar a configuração Master-Slaves em vez de Cluster. Você precisa:

    • 2 servidores Redis pelo menos
    • 3 Redis Sentinel para monitorar a saúde e evitar Split-Brain
    • Uma maneira de verificar quem é o mestre (eu uso o HAProxy no servidor cliente com alguns comandos de verificação)

    Se você puder torná-lo inteligente o suficiente, basta gravar no mestre e ler de todos os nós. Eu uso essa configuração em alguns sites Wordpress, mas o plugin não é feito para detectar quem é o mestre, então eu apenas uso o HAProxy para detectar o mestre e enviar todo o tráfego para esse nó. Se o nó mestre morrer, um nó escravo assume a função de mestre (redis-sentinel gerencia isso). O HAProxy detecta que o mestre foi alterado e, em seguida, altera o nó que recebe todo o tráfego.

    Desculpe por não postar código e exemplos, mas agora não posso fazer isso.

    Saudações!!

    • 5
  4. Ken Cheung
    2017-12-18T20:29:50+08:002017-12-18T20:29:50+08:00

    Se você depender do Redis para failover, precisará de no mínimo três nós mestres e três nós escravos (um mínimo de 3 servidores, cada um executando um mestre e um escravo).

    Se você usar um software de cluster externo, por exemplo, heartbeat, poderá configurar dois nós, um mestre e outro escravo no modo de cluster, alocar todos os 16384 slots para o mestre e usar scripts de failover para "CLUSTER FAILOVER TAKEOVER" quando o mestre estiver BAIXA. Claro, você também pode configurar um IP de serviço para failover junto com redis. Esse arranjo adicional permite que você também use o cliente redis sem cluster.

    A produção é executada por um ano e falha algumas vezes (reinicialização da máquina para atualização do kernel) e até agora nenhum problema relatado pela equipe de operação.

    • 4

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve