PHP - что является альтернативой переменным сеанса - PullRequest
4 голосов
/ 15 октября 2011

Я храню много переменных в сеансе, что создает проблему производительности.Итак, меня попросили сохранить его где-то еще, я могу сохранить его в базе данных, но это снова будет медленно.

Есть ли лучшая альтернатива для хранения переменных сеанса?Глобальная переменная для файла / запроса.В то время как куки открывают переменные для пользователей и не сохраняют их на стороне сервера.

Заранее спасибо за ваши ответы!

Ответы [ 3 ]

5 голосов
/ 15 октября 2011

Рассмотрим memcached для таких полупостоянных данных, как это. Сохраните ключ кэша в $_SESSION, а затем используйте его для захвата ваших кэшированных данных.

Поскольку memcached кэширует все в памяти (и является строго хранилищем значений ключей), это быстрее, чем база данных. Это несколько идеально для таких вещей, как сеансы, потому что если вы потеряете кэшированные данные, ничего серьезного не будет потеряно (пользователь просто неожиданно выйдет из системы).

Фактически, реализация PHP Memcache предоставляет обработчик сеанса (см. Пример # 2), который может прозрачно обрабатывать ваши сеансы для вас без необходимости вносить какие-либо изменения в ваш код.

2 голосов
/ 15 октября 2011

php сессии могут быть настроены для работы разными способами.вы можете запустить его из memcache, если у вас достаточно свободной памяти на сервере.это будет высокая производительность

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

почему это в настоящее время создает проблемы с производительностью?создается ли большое количество сеансов или вы храните большие объемы данных в сеансе?

0 голосов
/ 15 октября 2011

Это зависит от того, сколько "много" переменных?По умолчанию хранилище сессий для рельсов использует куки, которых мне обычно достаточно.Файл cookie зашифрован, если вы беспокоитесь о раскрытии переменных.Вы должны иметь это на стороне сервера?С html5 у вас есть опции localStorage.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...