Como o memcache é distribuído?

14

Eu tenho o memcache rodando em 5 servidores web, todos na lista de hosts em php e com balanceamento de carga no front-end. Portanto, como o memcached deve ser distribuído, o cliente php decidirá em qual nó escrever pares de chave / valor e manterá um registro para recuperação posterior desse mesmo nó, certo?

Ou o código do cliente php não é inteligente o suficiente para fazer isso e, em vez disso, grava os dados em todos os servidores e, em seguida, coloca aleatoriamente uma foto da piscina para ler?

Mas se faz isso; escreva para todas as instâncias na lista / pool de hosts; qual é o objetivo de uma ferramenta como http://repcached.sourceforge.net/ que replica dados para redundância.

A razão pela qual pergunto é porque todos os servidores com balanceamento de carga o estão executando e se ele realmente grava em todos os servidores no pool, parece que isso derrota o propósito de sua distribuição e, portanto, devo forçar o php a puxar do host na lista de hosts localhost.

Mike
fonte

Respostas:

16

A biblioteca Memecache é responsável por enviar a solicitação ao servidor correto. A biblioteca usa a lista que você fornece para enviar solicitações para diferentes servidores e o memcache não faz replicação.

Consulte o artigo do diário Linux . Explica como o memcache funciona com mais detalhes.

Sameer
fonte
Ótimo artigo, exatamente o que eu precisava, graças Sameer. Também achei este extremamente útil: code.google.com/p/memcached/wiki/NewConfiguringClient
Mike
Observe que o memcache particiona os dados em vários computadores com base na chave, o que significa que pode ser bom distribuir o trabalho uniformemente pelo espaço da chave, para que uma máquina não seja atingida com todo o tráfego, se for uma chave.
Lee penkman