Memcache::addServer
(PECL memcache >= 2.0.0)
Memcache::addServer — Додає сервер memcached у пул з'єднань
Опис
Memcache::addServer( string $host, int $port = 11211, bool $persistent = ?, int $weight = ?, int $timeout = ?, int $retry_interval = ?, bool $status = ?, callable $failure_callback = ?, int $timeoutms = ?): bool
Memcache::addServer() додає сервер до пулу з'єднань. Ви також можете використати функцію memcache_add_server()
При використанні цього методу (на відміну від Memcache::connect() і Memcache::pconnect()) мережне з'єднання не буде встановлено, поки в ньому не виникне потреба. У зв'язку з цим можна не побоюватися зниження продуктивності при додаванні великої кількості серверів до пулу, оскільки, можливо, вони ніколи не будуть використані.
Потреба у забезпеченні стійкості до відмови може виникнути на будь-якому етапі в будь-якому методі і якщо при цьому будуть доступні хоча б один сервер з пулу - користувач не отримає будь-якого оповіщення. Будь-який тип помилки сокету або сервера Memcached (за винятком помилки переповнення пам'яті) може увімкнути протокол забезпечення відмовостійкості. Звичайні клієнтські помилки, такі як додавання існуючого ключа, не викликають такої поведінки.
Зауваження :
Ця функція була додана до Memcache версії 2.0.0.
Список параметрів
host
Вказує на хост із запущеним сервісом memcached. Цей параметр можна встановити як unix:///path/to/memcached.sock
для использования сокетов Unix, но в таком случае будет необходимо установить параметрport
, рівним
port
Вказує порт, яким доступний сервіс memcached. Необхідно встановити рівним якщо використовуються сокети Unix.
Пожалуйста обратите внимание:port
по умолчанию равенmemcache.default_port. Тому рекомендується завжди вказувати номер порту під час використання цього методу.
persistent
Чи використовувати постійне з'єднання. За замовчуванням true
weight
Необхідна кількість створених пакетів даних для цього сервера, що, своєю чергою, визначає можливість його вибору. Імовірність розраховується щодо загальної ваги всіх серверів.
timeout
Час очікування в секундах для встановлення з'єднання із сервером. Двічі подумайте, перш ніж встановлювати це значення більше ніж 1. Це може нівелювати всю користь від використання memcached.
retry_interval
Керує частотою перевірки доступності сервера, що відмовив, за замовчуванням 15 секунд. Якщо встановити значення "-1", то спроб перевірити доступність сервера робитися не буде. Ні цей параметр, ні параметр persistent
не впливають, якщо модуль завантажений динамічно через функцію dl()
Кожна структура з'єднання, що провалилася, має власне значення часу очікування і, поки воно не перевищено, структура буде пропущена, після чого спробує вибрати інший сервер для обслуговування запиту. Після того як час з'єднання закінчився, воно або вдало переєднається, або буде позначено проваленим і чекатиме ще retry_interval
секунд. Зазвичай ефект полягає в тому, що кожен процес веб-сервера буде очікувати retry_interval
секунд при обслуживании запроса.
status
Визначає, чи сервер позначений прапором як "онлайн". Встановлення цього параметра **false
иretry_interval
-1 дозволить зберегти сервер в пулі, але не використовувати його в алгоритмі розподілу ключів. Запит до цього сервера або запустить механізм забезпечення стійкості до відмов, або відразу ж перерветься з помилкою, залежно від налаштування memcache.allow_failover
По умолчанию равноtrue
**що означає, що сервер активний і готовий приймати запити.
failure_callback
Дозволяє користувачеві встановити функцію зворотного дзвінка, яка запуститься у разі будь-якої помилки. Ця функція буде викликана раніше, ніж буде запущено механізм забезпечення стійкості до відмови. Функція приймає два параметри - ім'я хоста і порт сервера, що відмовив.
timeoutms
Значення, що повертаються
Повертає true
у разі успішного виконання або **false
**в случае возникновения ошибки.
Приклади
Приклад #1 Приклад використання Memcache::addServer()****
Loading...
Примітки
Увага
Когда значениеport
не вказано, цей метод використовує значення, вказане в ini-директиві PHP memcache.default_port. Якщо це значення було змінено десь у вашому додатку, це може дати непередбачувані результати. Тому краще завжди явно вказувати порт при виклику методу.
Дивіться також
- Memcache::connect() - Відкриває з'єднання з сервером memcached
- Memcache::pconnect() - Відкриває постійне з'єднання з сервером memcached
- Memcache::close() - Закрити з'єднання з сервером memcached
- Memcache::setServerParams() - Змінює параметри сервера та статус під час виконання
- Memcache::getServerStatus() - Повертає статус сервера