(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.
host
В параметре указывается хост, на котором сервер memcached прослушивает соединения.
port
В параметре указывается порт, на котором сервер memcached прослушивает соединения.
timeout
Время ожидания в секундах для подключения к демону. Изменение значения по умолчанию в 1 секунду часто нивелирует преимущества кеширования на медленных соединениях.
retry_interval
Параметр управляет частотой проверки доступности отказавшего сервера. Значение по умолчанию
равно 15 секундам.
Значение "-1" отключает автоматические повторные
проверки.
Ни этот параметр, ни параметр persistent
не влияют на работу метода,
если модуль загружается динамически функцией
dl().
status
Параметр определяет, помечать ли сервер флагом "онлайн". Одновременная установка
значения false
для этого параметра и значения -1 для параметра retry_interval
оставит отказавший сервер в пуле, чтобы не влиять на алгоритм распределения
ключей.
Запрос к этому серверу либо запустит механизм
отказоустойчивости, либо
сразу же прервётся с ошибкой, в зависимости от настройки
директивы memcache.allow_failover
. Значение по умолчанию равно true
—
сервер активен и готов принимать запросы.
failure_callback
Пользовательская 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');
?>