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. Якщо це значення було змінено десь у вашому додатку, це може дати непередбачувані результати. Тому краще завжди явно вказувати порт при виклику методу.

Дивіться також