JavaScript хранит сессии индивидуально или в общей памяти?

Предположим, у меня есть веб-сайт, который записывает в базу данных при запуске. Если несколько пользователей одновременно регистрируются на этом веб-сайте, означает ли это, что он будет пытаться выполнить запись в базу данных N раз, где N = количество пользователей? Есть ли способ заставить PHP только писать в базу данных, если соединения отключены (только если все остальные пользователи в данный момент не находятся на сайте)? Что бы вы предложили, чтобы уменьшить вероятность чрезмерных записей или запросов к базе данных?

0

Решение

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

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

Обратите внимание, что если вы используете модуль в памяти, например: php-redis Для хранения сеансов необходимо изменить маршрут, необходимый для проверки сеансов, с файлов на какой-либо обработчик, используемый для проверки сеансов.

0

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector