Since 3.0.0 there are new defaults:
memcache.hash_strategy = consistent
memcache.chunk_size = 32768
Настройка во время выполнения
Поведение этих функций зависит от установок в php.ini.
| Имя | По умолчанию | Меняемо | Список изменений |
|---|---|---|---|
| memcache.allow_failover | "1" | PHP_INI_ALL | Доступно с memcache 2.0.2. |
| memcache.max_failover_attempts | "20" | PHP_INI_ALL | Доступно с memcache 2.1.0. |
| memcache.chunk_size | "8192" | PHP_INI_ALL | Доступно с memcache 2.0.2. |
| memcache.default_port | "11211" | PHP_INI_ALL | Доступно с memcache 2.0.2. |
| memcache.hash_strategy | "standard" | PHP_INI_ALL | Доступно с memcache 2.2.0. |
| memcache.hash_function | "crc32" | PHP_INI_ALL | Доступно с memcache 2.2.0. |
| session.save_handler | "files" | PHP_INI_ALL | Поддерживается с memcache 2.1.2 |
| session.save_path | "" | PHP_INI_ALL | Поддерживается с memcache 2.1.2 |
| memcache.protocol | ascii | >PHP_INI_ALL | Поддерживается с memcache 3.0.0 |
| memcache.redundancy | 1 | >PHP_INI_ALL | Поддерживается с memcache 3.0.0 |
| memcache.session_redundancy | 2 | >PHP_INI_ALL | Поддерживается с memcache 3.0.0 |
| memcache.compress_threshold | 20000 | >PHP_INI_ALL | Поддерживается с memcache 3.0.3 |
| memcache.lock_timeout | 15 | >PHP_INI_ALL | Поддерживается с memcache 3.0.4 |
Краткое разъяснение конфигурационных директив.
-
memcache.allow_failoverboolean -
Разрешение прозрачного переключения на другие сервера при возникновении ошибок.
-
memcache.max_failover_attemptsinteger -
Устанавливает число попыток чтения и записи данных. Используется только в сочетании с memcache.allow_failover.
-
memcache.chunk_sizeinteger -
Устанавливает размер передаваемых блоков данных. Использование малых значений приводит к повышению сетевой активности. В случае неожиданного замедления работы попробуйте увеличить значение до 32768.
-
memcache.default_portstring -
Устанавливает номер TCP порта по умолчанию для подключения к memcached-серверу, если явно не указан иной.
-
memcache.hash_strategystring -
Контролирует стратегию функций отображения ключей на сервера. Установите этот параметр в consistent для включения последовательного хеширования, которое не требует переназначения ключей кеша при добавлении и удалении серверов из пула. Уставнока же этого параметра в standard приводит к использованию старой стратегии.
-
memcache.hash_functionstring -
Устанавливает хеш-функцию для отображения ключей на сервера. При значении crc32 будет использоваться стандартный CRC32 хеш, а при fnv - FNV-1a.
-
session.save_handlerstring -
Установите этот параметр в memcache для использовать memcache в качестве обработчика сессий.
-
session.save_pathstring -
Устанавливает список адресов серверов, разделенных запятой, для хранений сессий. Например, "tcp://host1:11211, tcp://host2:11211".
Каждый адрес может содержать параметры аналогичные используемым в методе Memcache::addServer(), которые будут применены сервером. Например, "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
-
memcache.protocolstring -
-
memcache.redundancyinteger -
-
memcache.session_redundancyinteger -
-
memcache.compress_thresholdinteger -
-
memcache.lock_timeoutinteger -
There's a currently undocumented variable that is now available (you can see it in php_info()) for session handling:
memcache.session_redundancy
The default seems to be "2", and it is supposed to influence how many copies of a particular session object that Memcache will store for failover purposes (so with a redundancy of 2, it will store a session on 2 different shards).
This will add slight overhead with extra writes, but overall seems worth it for purposes of failover.
Please note that when you specify more than one memcached server, you don't get the session data copied to every memcached server. Info is only copied to the first one. If the 1st server is down, it goes for the second (but the second will lack the info stored into the 1st one)
