¿Cómo se distribuye memcache?

14

Tengo memcache ejecutándose en 5 servidores web, todos los cuales están en la lista de hosts en php y que están equilibrados en la parte frontal. Entonces, dado que se supone que memcached se distribuye, el cliente php decidirá en qué nodo escribir pares clave / valor y mantendrá un registro para su posterior recuperación desde ese mismo nodo, ¿verdad?

¿O el código del cliente php no es lo suficientemente inteligente como para hacer eso y, más bien, escribe los datos en todos los servidores y luego toma aleatoriamente uno del grupo para leerlo?

Pero si hace eso; escribir en todas las instancias en la lista / grupo de hosts; entonces, ¿cuál es el propósito de una herramienta como http://repcached.sourceforge.net/ que replica datos para redundancia?

La razón por la que pregunto es porque todos los servidores con equilibrio de carga lo están ejecutando y si de hecho escribe a todos los servidores en el grupo, entonces parece que no cumple con el propósito de que se distribuya, por lo que debería forzar que php se retire del host en la lista de host que es localhost.

Miguel
fuente

Respuestas:

16

La biblioteca Memecache es responsable de enviar la solicitud al servidor correcto. La biblioteca utiliza la lista que proporciona para enviar solicitudes a diferentes servidores y memcache no realiza la replicación.

Consulte el artículo de la revista Linux . Explica cómo funciona Memcache con más detalle.

Sameer
fuente
Gran artículo justo lo que necesitaba, gracias Sameer. También encontré este que fue extremadamente útil: code.google.com/p/memcached/wiki/NewConfiguringClient
Mike
Tenga en cuenta que memcache divide los datos en varias computadoras en función de la clave, lo que significa que puede ser bueno distribuir el trabajo de manera uniforme en el espacio de la clave para que una máquina no se vea afectada por todo el tráfico si es todo por una clave.
Lee Penkman