Использование нескольких серверов memcache в пуле - PullRequest
6 голосов
/ 28 октября 2010

Я просматриваю документацию и меня немного смущает вопрос, как memcache выполняет внутреннюю балансировку нагрузки, если указано несколько серверов. Например:

import memcache
mc.set_servers(['127.0.0.1:11211','127.0.0.1:11212',])
mc.set("some_key", "Some value")
print mc.get("some_key")

Будет ли установка и получение ключа "some_key" всегда попадать на один и тот же сервер? Будет ли установка и получение альтернативных ключей, таких как «some_key_2» или «some_key_3», автоматически распределяться по пулу серверов? Что произойдет, если сервер будет добавлен или удален?

Аналогично, что происходит с get_multi:

import memcache
mc.set_servers(['127.0.0.1:11211','127.0.0.1:11212',])
mc.set_multi({42: 'adams', 46 : 'and of me'})
print mc.get_multi([46, 42])

Будет ли это автоматически устанавливать и получать каждый ключ с нужного сервера? Нужно ли писать класс-оболочку?

Спасибо.

1 Ответ

9 голосов
/ 28 октября 2010

memcached помещает ключи на серверы на основе хеша ключа. Пока настройки вашего сервера не меняются, данный ключ всегда будет попадать на данный сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...