PHP Сессионное хранилище глобально для всех пользователей

Что такое хороший способ сохранить небольшой фрагмент данных в нескольких вызовах PHP-скрипта таким образом, что любой вызов скрипта может получить доступ и изменить его значение – независимо от того, кто вызывает сценарий?

Я имею в виду нечто похожее на переменную $_SESSION , кроме сеанса строго для клиента; один клиент не может получить доступ к сеансу другого клиента. Это одно и то же, независимо от того, кто обращается к нему.

Потеря ценности или ее повреждение (например, по условиям гонки из двух сценариев, запущенных сразу) не является большой проблемой – если она правильно читает в 90% случаев, это удовлетворительно. OTOH, хотя я знаю, что могу просто использовать простой файл на диске, я бы предпочел решение на основе RAM, а не только на скорость, но это работает от не очень износостойкой вспышки, бесконечные записи были бы плохими.

Взгляните на функции общей памяти. Существуют две библиотеки, которые можно использовать для доступа к общей памяти:

  • семафоры
  • Общая память

Для хранения двоичных данных или одной огромной String библиотека общей памяти лучше, тогда как библиотека Semahpores предоставляет удобные функции для хранения нескольких переменных разных типов (за счет некоторых накладных расходов, что может быть весьма значительным, особенно для большого количества небольших ресурсов, (например, boolean).

Если это слишком сложно и / или вы не беспокоитесь о производительности, вы можете просто сохранить данные в файлах (в конце концов, для внутреннего управления сессиями PHP тоже используются файлы …)

Хорошей альтернативой использованию базы данных будет memcache !