Лучший способ хранить данные, к которым нужно обращаться из нескольких экземпляров - PullRequest
0 голосов
/ 20 апреля 2019

Каким образом можно кэшировать данные, к которым необходимо обращаться в основном постоянно из разных экземпляров с наименьшими издержками.

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

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

onJoin: если не загружен pull из mongo db, сохраните его в некоторой базе данных кэша, к которой можно получить доступ, например, Mongo (Query.field ("members. + uuid)), чтобы я мог сохранять ее работоспособной и эффективной.

OnLeave: если это последний член, то удалите его из кэша и сохраните данные в mongo, готовый к следующему запросу.

OnUpdate: Периодически он сохранял данные в кеше, выполняя какой-то цикл, чтобы минимизировать любую потерю данных, если произойдет что-то непредвиденное.

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

...