Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/tokyo_tyrant

Параметры конфигурации

  • --with-tokyo-tyrant[=DIR] DIR - это префикс установки Tokyo Tyrant.
  • --with-tokyo-cabinet-dir[=DIR] DIR - это префикс установки Tokyo Cabinet
  • --disable-tokyo-tyrant-session Отключить поддержку обработчика сеансов Tokyo Tyrant

Включение модуля

Модуль можно включить, добавив extension=tokyo_tyrant.so в INI-конфигурацию

Запуск Tokyo Tyrant для обработчика сессии

ttserver -port 2000 -ext /path/to/expire.lua -extpc expire 30.0 '/tmp/sessions.tct#idx=ts:dec'

Замечание: expire.lua включен в исходный код модуля tokyo_tyrant

Настройка обработчика сессии

  • tokyo_tyrant.session_salt="randomlongstring"
  • session.save_handler=tokyo_tyrant
  • session.save_path="tcp://hostname1:2000,tcp://hostname2:2000"

Замечание: Важно убедиться, что tokyo_tyrant.session_salt совпадает на всех серверах.

Как это работает?

Обработчик сессии создает идентификатор сеанса, подобный следующему: 8b0e27a823fa4a6cf7246945b82c1d51-a5eadbbed1f2075952900628456bfd6830541629-0-5460

Части слева направо:

  • Идентификатор сессии - Сгенерированный идентификатор сессии
  • Контрольная сумма - Контрольная сумма соли сессии, идентификатора сессии, идентификатора узла и первичного ключа
  • Идентификатор узла - Идентификатор узла, с которым сопоставляется сеанс
  • Первичный ключ - Первичный ключ строки, в которой хранится сессия

Контрольная сумма содержит SHA1-сумму идентификатора узла, первичного ключа, идентификатора сессии и соли, которая известна только на стороне сервера. Это позволяет быстро сопоставить идентификатор сессии с узлом и первичным ключом, поскольку нет необходимости выполнять дополнительный поиск. Во время регенерации идентификатора сессии меняются только части 1 и 2, но отображение узла и первичного ключа остается постоянным.

В случае сбоя некоторых узлов tokyo_tyrant.allow_failover, tokyo_tyrant.fail_threshold и tokyo_tyrant.health_check_divisor INI-настройки управляют поведением во время аварийного переключения. Если переключение разрешено, обработчик сессии сопоставит сессию с исправным узлом и создаст новую пустую сессию.