Memcache es un caché distribuido por diseño. Cuando utiliza un conjunto de servidores, los objetos se almacenan en todos los servidores mediante un mecanismo de distribución de claves que selecciona un servidor según el peso del servidor y el hash de la clave.
Ahora, en una configuración en 2 servidores memcache, uno iría así:
$memcache = new Memcache;
$memcache->addServer('memcache_host1', 11211);
$memcache->addServer('memcache_host2', 11211);
la publicación de estas llamadas, el proceso php verá el grupo de servidores con dos servidores y distribuir los objetos de manera uniforme a ellos como los pesos predeterminados se seleccionan en llamadas Memcache :: addServer. Por lo tanto, una llamada a Memcache :: get o a Memcache :: set guardará un objeto o recuperará un valor clave del host correcto del grupo de servidores según la clave.
Memcache :: connect, sin embargo, reinicializa el grupo de hosts y asume que solo hay un único host disponible, y todos los objetos están almacenados en ese host. Esto también significa que si usted hace esto:
$memcache = new Memcache;
$memcache->addServer('memcache_host1', 11211);
$memcache->addServer('memcache_host2', 11211);
$memcache->connect('memcache_host1', 11211);
La última llamada despejaría el grupo de servidores y todas las teclas después de la Memcache :: connect llamada será salvo en memcache_host1. Por lo tanto, Memcache :: connect se usa idealmente en una única configuración de host y nunca con un grupo a menos que la intención sea hablar con un host específico en un grupo para obtener estadísticas, operaciones de mantenimiento o esquemas especiales de almacenamiento en caché. Más discusión here.