Как управлять memcached серверами в php - PullRequest
1 голос
/ 20 марта 2012

Каков наилучший способ управления серверами memcache в php?Я особенно обеспокоен добавлением / удалением серверов или наличием 1 ошибки.

Насколько я понимаю, если вы просто закомментируете addServer () сервера, который вы хотите удалить, он испортит весь кэшбассейн.Это верно?

В настоящее время я прибегаю к этому:

Включено:

$memcache_obj->addServer('ip', port, true, 1, 1, 15, true);

Отключено

$memcache_obj->addServer('ip', port, true, 1, 1, -1, false);

Это хорошая идея?

Как насчет хранения списка серверов memcache.У меня есть несколько серверов, которые все должны подключиться к пулу memcache.Для внесения любых изменений мне необходимо отредактировать конфигурацию на всех этих серверах.

А как насчет хранения списка серверов в mysql?

1 Ответ

1 голос
/ 20 марта 2012

Два способа (насколько я знаю) сделать это, используя библиотеку php Memcache:

  • метод, который вы использовали, который включит прозрачное аварийное переключение, если memcache.allow_failover включен. При этом ключи, которые вы устанавливаете, когда сервер отключен, необходимо будет воссоздать, когда сервер снова будет запущен в работу.
  • изменить memcache.hash_strategy на постоянный. Это сделает стратегию хеширования менее подверженной влиянию пула серверов.

В любом случае отключение или удаление сервера из пула окажет влияние, и некоторые ключи будут потеряны в процессе.

Больше опций можно найти в php Memcached (обратите внимание на d) (но, конечно, это будет означать изменения в коде).

Взгляните на свою php.ini и конфигурацию времени выполнения Memcache для текущих настроек.

Как примечание, сохранение списка серверов в mysql - плохая идея. Лучший способ сделать это жестко закодированным. Было бы неэффективно устанавливать соединение с базой данных и делать запросы только для получения списка серверов, которые дадут вам возможность подключиться к буферу быстрого хранения. Кэширование должно быть способом избежать подключения и запросов к базе данных.

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