Se eu ler bem as informações publicadas, memcache
suportará a replicação de dados em vários servidores por meio de um daemon chamado repcached
. Eu devo adicionar eu nunca usei memcache embora.
Eu usei redis
e sei que ele suporta configurações Master-Slave.
Em ambos os casos, você pode querer instalar seu daemon em todas as máquinas e ter dados replicados de uma maneira mestre-escravo. Você ajustaria o atraso de atualização para ter uma réplica consistente para sua configuração.
Os motivos incluem:
- não é necessário configurar o mecanismo de replicação dedicado, seu daemon lidará com a tarefa
- qualquer uma das máquinas falhará, a configuração continuará funcionando sem problemas, outras máquinas perderão a conectividade com a falha e compartilharão a carga. Você poderia então alternar qualquer um dos três nós restantes para master por enquanto
No lado do aplicativo, talvez você queira se conectar a uma única instância do daemon para leitura e gravação (geralmente a única principal) e fazer com que os escravos replicem dados de maneira preguiçosa.
Isso permitiria obter o melhor desempenho, porque o cache sempre pode acessar dados diretamente diretamente. Esta configuração também manterá uma disponibilidade decente (permitindo tempo X de "dados perdidos" devido a falhas, onde você pode configurar o X como quiser). Você também pode querer balancear a entrada do cache dns, para que as instâncias de seu aplicativo sempre encontrem um cache disponível.
Se você escolher redis
, certifique-se de ativar os dois modos de persistência de dados (RDB e AOF).