У меня есть некоторая сложная структура данных (объекты и прочее), общая для всех моих PHP-скриптов, и сейчас я храню эту сериализацию в сеансе. Это могло бы повысить производительность моего сервера, если бы мне не приходилось сериализовать и десериализовать его для каждого входящего запроса. Эта структура данных содержит информацию ACL приложения, поэтому она одинакова для всех пользователей приложения, поэтому она является идеальным кандидатом для совместного использования всеми запросами (независимо от того, от какого пользователя поступил запрос).
Я погуглил Совместно используемая память PHP а также эти функции подошли. Они идеальны, просто они могут держать только струны. Они бесполезны для меня, если я не могу сохранить свою структуру данных как есть. Я имею в виду, если мне придется сериализовать и десериализовать мою структуру данных для каждого запроса, это не так уж много поможет.
У кого-нибудь есть решение для совместной памяти, где я могу хранить свои данные КАК ЕСТЬ?
Сохраните ваш сложный объект в memcached.
Разложите сложную структуру данных на 2 части: одна часто используется (по всем запросам), другая редко используется. Вы можете хранить избыточные данные (одно значение может оставаться как в часто, так и в редко используемых частях), так что сложная часть редко используется.
При каждом запросе необходим доступ ко всему сложному объекту. Вам нужно построить алгоритм для извлечения необходимых данных, а не десериализовать их как объект и использовать.
Других решений пока нет …