Используя Redis и MongoDB вместе, лучше всего хранить каждую сессию в Redis и обновлять БД в конце сессии? - PullRequest
0 голосов
/ 25 октября 2018

Я нашел статью здесь , в которой объясняются три основных варианта использования Redis.Для моей сети Minecraft мне нужно будет включить управление сессиями, профили игроков, списки лидеров и т. Д., Для которых Redis кажется идеальным.MongoDB кажется идеальным для хранения данных проигрывателя в формате Json (ранее использовался MySQL) (РЕДАКТИРОВАТЬ: я также прочитал эту статью здесь, и это могло напугать меня от использования MongoDB).

Первоначально,Я планировал создать систему, в которой:

Игрок входит в сеть -> его данные извлекаются из MongoDB и сохраняются в Redis -> плеер присоединяется к серверу в сети -> его данные извлекаются из Redisи хранятся внутри объекта оболочки профиля -> игрок покидает сервер, чтобы присоединиться к другому серверу -> их данные сохраняются в Redis на старом сервере -> их данные загружаются из Redis на новом сервере -> игрок покидает всю сеть-> их данные хранятся в MongoDB и удаляются из Redis.

Я собираюсь создать класс ProfileSnapshot, который содержит снимок профиля при его загрузке, так что если данные внутри не изменились, когдаигрок переходит на новый сервер, данные не сохраняются.

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

Во-вторых, эффективна ли загрузка профиля игрока MongoDB в Redisя должен даже использовать Redis для этого?Или я должен просто загружать данные игрока из MongoDB каждый раз, когда игрок перемещается с сервера на сервер?Redis полезен в этом случае?Будет ли MongoDB достаточно быстрым для загрузки данных и их постоянного сохранения?Я ожидаю, что в сети может быть одновременно около 400 игроков.

Существуют ли другие варианты, которые я мог бы использовать, чтобы иметь сеть, в которой данные доступны для всех игроков, где данные хранятся в MongoDB /Redis?Данные об игроке должны находиться на сервере, на котором он включен, и игрок может сменить сервер в любое время.

Дополнительная информация:

Redis хранит только профили онлайн-игроков..

Redis и MongoDB обычно используются для сетей Minecraft (возможно, это не имеет значения, но просто гарантирует, что мои идеи могут быть приемлемыми).

Скорость - это ключ.

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

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