Хранение сложных структур данных в общей памяти PHP

У меня есть сложная структура данных (объекты и прочее), разделяемая всеми моими PHP-скриптами, и сейчас я сохраняю ее сериализованную в сеансе. Это могло бы повысить производительность моего сервера, если бы мне не приходилось сериализовать и десериализовать его для каждого входящего запроса. Эта структура данных содержит информацию ACL приложения, поэтому она одинакова для всех пользователей приложения, поэтому это идеальный кандидат для совместного использования между всеми запросами (независимо от того, от какого пользователя пришел запрос).

Я поискал в Google разделяемую память PHP, и эти функции появились. Они идеальны, просто могут удерживать только струны. Они бесполезны для меня, если я не могу сохранить свою структуру данных как есть. Я имею в виду, что если мне нужно сериализовать и десериализовать структуру данных для каждого запроса, это не так уж и много помощи.

Есть ли у кого-нибудь для меня какое-либо решение с общей памятью, где я могу хранить свои данные КАК ЕСТЬ?


person Mehran    schedule 30.11.2014    source источник


Ответы (1)


  1. Сохраните сложный объект в memcached.

  2. Реорганизуйте сложную структуру данных на 2 части: одна используется часто (для всех запросов), другая - редко. Вы можете хранить данные с избыточностью (одно значение может оставаться как в часто, так и в редко используемых частях), чтобы сложная часть использовалась редко.

  3. Если каждый запрос требует доступа ко всему сложному объекту. Вам необходимо создать алгоритм для извлечения нужных данных вместо того, чтобы десериализовать их как объект и использовать.

person Andy Nghi    schedule 30.11.2014