@Azperin
Дилетант

Использование глобальной переменной как кэша в ноде?

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

var GlobalState = {};

И допустим зашел пользователь, если свойства GlobalState.usersAuth.[" user " + userid].auth.password нет, то идем в базу, если же есть то сравниваем пароли уже через вот эту переменную. А когда пользователь меняет пароль, то после успешной вставки в базу, меняем и в глобале.

Я щас пойду читать про утечки памяти, но мб кто сталкивался с таким вопросом. Кэш сервисы по типу мемкеша я не вижу особого смысла использовать или оно чем то лучше ?

upd.1.
Логика примерно такая
if ( GlobalState.usersAuth.hasOwnProperty( " user " + user_id ) ) {
  //берем пароль для сравнения из глобальной переменной
} else {
  //лезем в базу, сравниваем пароли и если все гуд, то записываем в глобальную переменную
};
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
MAKAPOH
@MAKAPOH
многостаночник
Такое решение не масштабируется. Когда вам понадобится запустить несколько серверов, придётся выносить кеш во внешнюю БД, либо держать в каждом экземпляре приложения свою копию GlobalState.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы