«дюжина запросов на выборку в минуту для каждого активного игрока» нам ничего не говорит.Чтобы иметь какое-либо отношение, нам нужно знать количество активных игроков, количество времени, которое занимает каждый запрос, структуру таблицы, используемые запросы (включая количество возвращаемых данных), статистику загрузки сервера и другие, такие какнапример, используете ли вы способность Mongo для защиты базы данных и т. д.
Независимо от того, перед настройкой любого типа кэширования, я настоятельно рекомендую вам начать с профилирования системы.Вы должны знать, где находятся ваши узкие места, если они вообще существуют.Это не то, о чем вы просто догадываетесь, вам нужна точная и реальная статистика.
Имея эту информацию в руках, вы можете определить, нужно ли вам
- , чтобы сделать незначительнуюисправления в вашем коде
- реализация некоторой стратегии кэширования
- осколка сервера базы данных на нескольких серверах
- перестройка больших массивов кода
- масштабирование (покупкасерверы большего размера)
- или даже исправление проблем с внутренней сетью.
Дело в том, что не стоит начинать кэширование в надежде на повышение производительности позже.Кэширование с такой же вероятностью может повысить производительность, как и убить ее, в зависимости от огромного количества факторов.
Еще одна вещь, которую необходимо добавить здесь.Если вы используете веб-ферму для размещения вашего сервера запросов, тогда сложность и затраты на оборудование, связанные с локальным кэшированием данных для каждого независимого веб-сервера, резко возрастают.
Расходы на оборудование увеличиваются из-за повышенных требований к памяти на веб-серверах при попытке сохранить данные, кэшированные в памяти, на этих машинах.
Сложность увеличивается при попытке синхронизировать кэшированные копии, чтобы они не устарели.Я полагаю, что игра потребует информации, которая на 100% актуальна.Такие сайты, как Facebook и другие, могут быть немного не синхронизированы.Когда игровой сервер не синхронизируется, это может отрицательно повлиять на удобство использования игроками.
Предполагается, что в настоящее время вы развертываете только один веб-сервер и один сервер БД, добавляя возможности кэширования , теперь .может причинить вам боль, если вы перейдете на несколько веб-серверов и / или несколько серверов БД.
Наконец, если по какой-то причине вы развертываете только на одной машине, на которой размещены база данных и веб-сервер, кеширование совершенно нелепо.