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