Как распределяется memcache?

14

У меня есть memcache, работающий на 5 веб-серверах, все из которых находятся в списке хостов в php и которые сбалансированы по нагрузке на внешнем интерфейсе. Таким образом, поскольку memcached предполагается распространять, клиент php решит, в какой узел записать пары ключ / значение, и сохранит запись для последующего извлечения из этого же узла, верно?

Или клиентский код php недостаточно умен, чтобы сделать это, и он скорее записывает данные на все серверы, а затем случайным образом записывает один из пула для чтения?

Но если это так; запись во все экземпляры в списке хостов / пуле; тогда какова цель такого инструмента, как http://repcached.sourceforge.net/, который реплицирует данные для избыточности.

Причина, по которой я спрашиваю, заключается в том, что все серверы с балансировкой нагрузки работают на нем, и если он действительно выполняет запись на все серверы в пуле, то кажется, что он не справляется с целью его распределения, и поэтому мне нужно просто заставить php извлечь из хоста в списке хостов, который является localhost.

Майк
источник

Ответы:

16

Библиотека Memecache отвечает за отправку запроса на правильный сервер. Библиотека использует предоставленный вами список для отправки запросов на разные серверы, а memcache не выполняет репликацию.

Обратитесь к статье в журнале Linux . Это объясняет, как работает memcache более подробно.

Самир
источник
Отличная статья как раз то, что мне нужно, спасибо Самир. Я также нашел этот, который был чрезвычайно полезен: code.google.com/p/memcached/wiki/NewConfiguringClient
Майк
Обратите внимание, что memcache распределяет данные на несколько компьютеров на основе ключа, что означает, что было бы хорошо распределить работу равномерно по пространству ключей, чтобы одна машина не получала весь трафик, если все для одного ключа.
Ли Пенкман