## Настройка во время выполнения

Поведение функций зависит от установок в файле php.ini.

Опции настройки Memcached
Имя | По умолчанию | Место изменения | Список изменений
--- | --- | --- | ---
memcached.sess_locking | On | `INI_ALL` | Доступно с memcached 0.1.0.
memcached.sess_consistent_hash | On | `INI_ALL` | Доступно с memcached 2.1.0. Значение по умолчанию — `On`, начиная с memcached 3.0.0.
memcached.sess_binary | Off | `INI_ALL` | Доступно с memcached 2.0.0. Заменено на `memcached.sess_binary_protocol` в memcached 3.0.0.
memcached.sess_lock_wait | 150000 | `INI_ALL` | Доступно с memcached 0.1.0. Удалено в memcached 3.0.0.
memcached.sess_prefix | memc.sess.key. | `INI_ALL` | Доступно с memcached 0.1.0.
memcached.sess_number_of_replicas | 0 | `INI_ALL` | Доступно с memcached 2.1.0.
memcached.sess_randomize_replica_read | Off | `INI_ALL` | Доступно с memcached 2.1.0.
memcached.sess_remove_failed | On | `INI_ALL` | Доступно с memcached 2.1.0. Заменено на `memcached.sess_remove_failed_servers` в memcached 3.0.0.
memcached.compression_type | fastlz | `INI_ALL` | Доступно с memcached 0.1.0.
memcached.compression_factor | 1.3 | `INI_ALL` | Доступно с memcached 0.1.0.
memcached.compression_threshold | 2000 | `INI_ALL` | Доступно с memcached 0.1.0.
memcached.serializer | igbinary | `INI_ALL` | Доступно с memcached 0.1.0.
memcached.use_sasl | Off | `INI_SYSTEM` | Доступно с memcached 2.2.0. Удалено в memcached 3.0.0.
memcached.default_binary_protocol | Off | `INI_ALL` | Доступно с memcached 3.0.0.
memcached.default_connect_timeout | 0 | `INI_ALL` | Доступно с memcached 3.0.0.
memcached.default_consistent_hash | Off | `INI_ALL` | Доступно с memcached 3.0.0.
memcached.sess_binary_protocol | On | `INI_ALL` | Доступно с memcached 3.0.0. Заменено на `memcached.sess_binary`.
memcached.sess_connect_timeout | 1000 | `INI_ALL` | Доступно с memcached 2.2.0.
memcached.sess_consistent_hash_type | ketama | `INI_ALL` | Доступно с memcached 3.1.0.
memcached.sess_lock_expire | 0 | `INI_ALL` | Доступно с memcached 2.2.0.
memcached.sess_lock_retries | 5 | `INI_ALL` | Доступно с memcached 3.0.0.
memcached.sess_lock_wait_max | 150 | `INI_ALL` | Доступно с memcached 3.0.0. Значение по умолчанию `150` с memcached 3.1.0 (предыдущее значение `2000`).
memcached.sess_lock_wait_min | 150 | `INI_ALL` | Доступно с memcached 3.0.0. Значение по умолчанию `150` с memcached 3.1.0 (предыдущее значение `1000`).
memcached.sess_persistent | Off | `INI_ALL` | Доступно с memcached 3.0.0.
memcached.sess_remove_failed_servers | Off | `INI_ALL` | Доступно с memcached 3.0.0. Заменено на `memcached.sess_remove_failed`.
memcached.sess_server_failure_limit | 0 | `INI_ALL` | Доступно с memcached 3.0.0.
memcached.sess_sasl_password | null | `INI_ALL` | Доступно с memcached 2.2.0.
memcached.sess_sasl_username | null | `INI_ALL` | Доступно с memcached 2.2.0.
memcached.store_retry_count | 0 | `INI_ALL` | Доступно с memcached 2.2.0. Значение по умолчанию `0` с memcached 3.2.0 (предыдущее значение `2`).

Краткое разъяснение конфигурационных директив.

`memcached.sess_locking` bool

  Использовать блокировку сессий. Допустимые значения: `On`, `Off`. По умолчанию — `On`.

`memcached.sess_consistent_hash` bool

  Если установлено значение `On`, то для обработки сессий будет использовано согласованное хеширование (libketama). При использовании согласованного хеширования можно добавлять или удалять узлы кеширования без больших потерь кешированных ключей. По умолчанию — `On`.

`memcached.sess_binary` bool

  Использовать бинарный режим сессии. Реплики модуля libmemcached работают только если включён этот режим. По умолчанию — `Off`.

`memcached.sess_lock_wait` int

  Время ожидания повторной синхронизации сессии в микросекундах. При установке этого значения нужно быть осторожным. Допустимы целочисленные значения. Если установлено значене `0`, то будет использовано значение по умолчанию. Отрицательные значения уменьшают блокировку попытки блокировки. По умолчанию — `150000`.

`memcached.sess_prefix` string

  Префикс ключа сессии. Строка длиной не более 219 байтов. По умолчанию — `memc.sess.key`.

`memcached.sess_number_of_replicas` int

  Записывать данные на ряд дополнительных серверов memcached. Это «высокая доступность для бедняков», как её называет модуль libmemcached. Если это значение положительное и активирован режим `sessions_remove_failed_servers`, когда сервер memcached выходит из строя, сессия будет по-прежнему доступна из реплики. Однако, если отказавший сервер memcache снова становится доступным, он будет читать сессию оттуда, которая может иметь старые данные или вообще не иметь данных. По умолчанию — `0`.

`memcached.sess_randomize_replica_read` bool

  Случайное чтение реплики memcached сессией.

`memcached.sess_remove_failed` int

  Разрешить автоматическое удаление недоступных серверов memcached.

`memcached.compression_type` string

  Настройка типа сжатия, корректные значения: `fastlz`, `zlib`. По умолчанию — `fastlz`.

`memcached.compression_factor` float

  Коэффициент сжатия. Хранить значения сжатыми только если коэффициент сжатия превышает заданный. Храним сжатым, если: `plain_len > comp_len * factor`. По умолчанию — `1.3` (экономия места 23 %).

`memcached.compression_threshold` int

  Порог сжатия. Не сжимать сериализованные значения меньше указанного размера. По умолчанию `2000` байтов.

`memcached.serializer` string

  Устанавливает сериализатор по умолчанию для новых объектов memcached. Допустимые значения: `php`, `igbinary`, `json`, `json_array`, `msgpack`.

  json

    Стандартное для PHP кодирование в формат JSON. Этот сериализатор быстрый и компактный, но работает только с данными в кодировке UTF-8, и не полностью реализует сериализацию. Подробнее об этом рассказано в описании модуля JSON. Доступно с memcached 0.2.0.

  json_array

    Тот же `json`, но декодируется в массивы. Доступно с memcached 2.0.0.

  php

    Стандартный сериализатор PHP.

  igbinary

    Бинарный сериализатор. Доступно с memcached 0.1.4

  msgpack

    Межъязыковой двоичный сериализатор. Доступно с memcached 2.2.0.

  По умолчанию `igbinary`, если доступен, затем `igbinary`, если доступен, иначе PHP.

`memcached.use_sasl` bool

  Использовать аутентификацию SASL при соединении. Допустимые значения: `On`, `Off`. По умолчанию — `Off`.

`memcached.default_binary_protocol` bool

  Устанавливает протокол memcached по умолчанию для новых подключений. (Чтобы настроить протокол memcached для соединений, используемых сессиями, вместо нее используют директиву `memcached.sess_binary_protocol`.) Если установлено значение `On`, по умолчанию будет использован двоичный протокол memcached. Если установлено значение `Off`, будет использован текстовый протокол memcached. По умолчанию — `Off`.

`memcached.default_connect_timeout` int

  Устанавливает время ожидания соединения memcached по умолчанию для новых соединений. (Чтобы настроить время ожидания соединения memcached для сессий, вместо этого используют `memcached.sess_connect_timeout`.) В неблокирующем режиме это изменяет значение времени ожидания во время подключения к сокету в миллисекундах. Указание `-1` означает бесконечное время ожидания. Указание `0` означает использование времени ожидания соединения по умолчанию для библиотеки memcached. По умолчанию — `0`.

`memcached.default_consistent_hash` bool

  Устанавливает значение по умолчанию для согласованного хеширования для новых подключений. (Чтобы настроить согласованное хеширование для сессий, вместо этого используют `memcached.sess_consistent_hash`.) Если установлено значение `On`, для обработки сессии используется согласованное хеширование (libketama). Когда используется согласованное хеширование, можно добавлять или удалять узлы кеша, не беспокоясь о том, что существующие ключи по умолчанию отключены.

`memcached.sess_binary_protocol` bool

  Использовать двоичный протокол memcached для сессий memcached (вместо текстового протокола). Реплики модуля libmemcached работают, только если включён двоичный режим. Однако некоторые прокси (например, twemproxy) будут работать, только если двоичный протокол отключён. По умолчанию — `On` с libmemcached 1.0.18 или новее. До libmemcached 1.0.18 значение по умолчанию `Off`.

  > Замечание: В более старых версиях php-memcached эта директива была выключена и называлась `memcached.sess_binary`.

`memcached.sess_connect_timeout` int

  Значение времени ожидания соединения memcached. В неблокирующем режиме это изменяет значение времени ожидания во время соединения сокета в миллисекундах. Указание `-1` означает бесконечное время ожидания.

`memcached.sess_consistent_hash_type` string

  Тип согласованного хеширования сессии Memcached. Если установлено значение `ketama` (по умолчанию для php-memcached 3.x), для обработки сессии используется согласованное хеширование модуля libketama, если установлено значение `ketama_weighted` (по умолчанию для php-memcached 2.x), для обработки сессии используется взвешенное согласованное хеширование (модуль libketama). По умолчанию — `ketama`.

`memcached.sess_lock_expire` int

  Время в секундах до того, как должна сработать блокировка. Установка значения `0` приводит к поведению по умолчанию — будет использована PHP-директива `max_execution_time`. По умолчанию — `0`.

`memcached.sess_lock_retries` int

  Количество попыток повторной блокировки блокировки сессии, не включая первую попытку. По умолчанию — `5`.

`memcached.sess_lock_wait_max` int

  Максимальное время ожидания в миллисекундах между попытками блокировки сессии. По умолчанию — `150`.

`memcached.sess_lock_wait_min` int

  Минимальное время ожидания в миллисекундах между попытками блокировки сессии. Это значение удваивается при каждой попытке блокировки до тех пор, пока не будет достигнуто значение, заданное директивой `memcached.sess_lock_wait_max`, очередные попытки будут занимать время достигнутого значения. По умолчанию — `150`.

`memcached.sess_persistent` bool

  Следует ли повторно использовать соединения memcached, соответствующие значению (значениям) директивы `session.save_path` после завершения выполнения скрипта. Эту директиву не используют, если определённые настройки (например, настройки SASL, sess_binary_protocol) будут переопределены между запросами. По умолчанию — `Off`.

`memcached.sess_remove_failed_servers` bool

  Разрешить автоматическое удаление отказавшего сервера memcached. По умолчанию — `Off`.

  > Замечание: В предыдущих версиях эта директива называлась `memcached.sess_remove_failed`.

`memcached.sess_server_failure_limit` int

  Установка большего, чем установленное по умолчанию, значения разрешит удаление сервера после заданного количества непрерывных сбоев подключения. По умолчанию — `0`.

`memcached.sess_sasl_password` string

  Пароль сессии SASL. Для включения SASL необходимо указать имя пользователя и пароль.

`memcached.sess_sasl_username` string

  Имя пользователя сессии SASL. Для включения SASL необходимо указать имя пользователя и пароль.

`memcached.store_retry_count` int

  Количество повторных попыток для неудачных команд сохранения. Этот механизм прозрачно переключает на вторичные серверы при сбое операций set/increment/decrement/setMulti на желаемом сервере в среде c множеством серверов. По умолчанию — `2`.

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open