Как приложение PHP может хранить данные в памяти?

Ранее я разрабатывал веб-приложения на Java (Spring, Spring Boot), где я храню большой объем данных, кэшируемых в памяти, чтобы значительно повысить эффективность и число одновременных пользователей, которые могут поддерживаться, но мне трудно понять, как работает приложение PHP. можно добиться того же?

Есть ли глобальный способ сделать это, или это лучший эквивалент с использованием переменных сеанса?

1

Решение

PHP — это одностраничный язык (если мы говорим о WEB).
Посмотри на это http://php.find-info.ru/php/016/ch20lev1sec5.html и это http://www.slideshare.net/laruence/the-php-life-cycle

Если вам нужно хранить много данных, кэшируемых в памяти в режиме реального времени (например, без выполнения запросов в БД каждый раз (каждый запрос)), вам необходимо использовать некоторое хранилище на основе памяти, которое будет поддерживать постоянное соединение в вашем коде.

Кроме того, будьте осторожны, когда будете использовать много данных в переменных php, сборщик мусора работает хорошо, но только для небольших запросов. смотреть на unset() Выражение, для принудительной очистки кучи.

Простите за английский 🙂

3

Другие решения

Это зависит от вашего требования. Если бы я был на вашем месте, я бы предпочел REDIS, который является прерывателем сделок для одновременной базы данных в реальном времени

  • Пустой экземпляр redis использует ~ 1 МБ памяти.
  • 1 миллион маленьких ключей -> String Value используют ~ 100 МБ памяти.
  • 1 миллион ключей -> значение хэша, представляющее объект с 5 полями,
    использовать ~ 200 МБ памяти. (Вы можете иметь 1 миллион пользователей одновременно при минимальных 200 МБ)

Ниже может быть ваш случай использования

  • Системы уведомлений о публикации / подписке в реальном времени
  • Аналитика в реальном времени
  • Очереди задач и системы заданий
  • Рекорды лидеров
3

Вы можете создать свой собственный класс кеша и использовать его (синглтон-класс может быть другим решением).

2
По вопросам рекламы [email protected]