(PECL memcache >= 2.1.0)
Memcache::setServerParams -- memcache_set_server_params — Изменяет параметры и статус сервера во время выполнения
$host,$port = 11211,$timeout = ?,$retry_interval = false,$status = ?,$failure_callback = ?$memcache,$host,$port = 11211,$timeout = ?,$retry_interval = false,$status = ?,$failure_callback = ?Метод Memcache::setServerParams() изменяет параметры сервера на лету.
Замечание: Функцию добавили в модуль Memcache версии 2.1.0.
hostporttimeoutretry_intervalpersistent
не влияют на работу метода,
если модуль загружается динамически функцией
dl().
statusfalse для этого параметра и значения -1 для параметра retry_interval
оставит отказавший сервер в пуле, чтобы не влиять на алгоритм распределения
ключей.
Запрос к этому серверу либо запустит механизм
отказоустойчивости, либо
сразу же прервётся с ошибкой, в зависимости от настройки
директивы memcache.allow_failover. Значение по умолчанию равно true —
сервер активен и готов принимать запросы.
failure_callback
Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.
Пример #1 Пример изменения параметров и статуса сервера методом Memcache::setServerParams()
<?php
function _callback_memcache_failure($host, $port)
{
print "неудачное подключение memcache - '$host:$port'";
}
/* Объектно-ориентированный API */
$memcache = new Memcache();
// Добавить сервер в офлайн-режиме
$memcache->addServer('memcache_host', 11211, false, 1, 1, -1, false);
// Перевести сервер обратно в онлайн
$memcache->setServerParams('memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');
/* Процедурный API */
$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_server_params($memcache_obj, 'memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');
?>