Где лучше всего хранить часто изменяемые данные? - PullRequest
0 голосов
/ 28 июня 2018

Я создаю игровой сервис, в котором игроки будут в паре и будут соревноваться друг с другом в режиме реального времени. Я строю это узел / websockets и реагирую. У меня вопрос очень высокого уровня:

Где я должен хранить данные, такие как количество пользователей в сети, список онлайн-пользователей и т. Д. Я уверен, что могу хранить их в БД, но я знаю, что они будут часто меняться. Это лучше всего подходит для одного из хранилищ памяти узлов, таких как «хранилище данных», или просто иметь набор переменных на сервере, доступных для веб-сокетов (что у меня сейчас)?

Или я все равно должен просто положить его в БД ???

1 Ответ

0 голосов
/ 28 июня 2018

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

Если вы кластеризуете свой сервер, то часто измененные данные, которые не нужно постоянно сохранять при перезапусках сервера, можно сохранить в базе данных в памяти в своем собственном процессе, таком как redis. Каждый сервер в вашем кластере может затем запросить повторную передачу в любое время, когда ему потребуется последняя копия данных. Поскольку это хранилище данных в памяти, оно эффективно для данных, которые сильно меняются, а также доступны для нескольких процессов.

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