Разгильдяй
Новичок
Прошу совет для элегантного решения следующей задачи:
Есть игра с заявками, которые подают игроки, чтобы попасть в бои на арене. Для того, чтобы разгрузить фронт решили кешировать промежуточные данные в memcached. Бекэнд ложит данные в мемкеш на фронте, а nginx читает их и отдает клиенту. Все хорошо, но есть один затык. Для каждого типа заявок есть фильтры, которые определяет какие заявки необходимо показывать игроку. Пример фильтров (1. только моего уровня, 2. моего уровня и выше, 3. моего уровня и ниже, 4. +-1 от моего уровня итд).
А теперь собственно вопрос. Как правильно хранить данных в мемкеш, чтобы nginx по ключу достал заявки с учетом фильтра?
клиент располагает следующими данными о заявке:
1. тип боя
2. дата подачи заявки
3. фракция игрока
4. язык игрока
5. номер фильтра
6. уровень игрока
7. айди локации
Если создать для мемкеша ключи из всех данных, кроме фильтра, то все отлично работает. Если же сюда добавить фильтр, то ключ для одной и той же заявки у персонажей разных уровней будет выглядеть по разному.
Как грамотно это все разрулить?
На данный момент пришли к вывыводу, что nginx может только взять данные из мемкеша по ключу, сжать их и передать клиенту, а сортировки все с учетом фильтра проводить уже на стороне клиента. Но к сожалению при таком вариенте клиент будет очень сильно нагружен и поэтому он не подходит. И плюс заявок может быть слишком много.
Есть игра с заявками, которые подают игроки, чтобы попасть в бои на арене. Для того, чтобы разгрузить фронт решили кешировать промежуточные данные в memcached. Бекэнд ложит данные в мемкеш на фронте, а nginx читает их и отдает клиенту. Все хорошо, но есть один затык. Для каждого типа заявок есть фильтры, которые определяет какие заявки необходимо показывать игроку. Пример фильтров (1. только моего уровня, 2. моего уровня и выше, 3. моего уровня и ниже, 4. +-1 от моего уровня итд).
А теперь собственно вопрос. Как правильно хранить данных в мемкеш, чтобы nginx по ключу достал заявки с учетом фильтра?
клиент располагает следующими данными о заявке:
1. тип боя
2. дата подачи заявки
3. фракция игрока
4. язык игрока
5. номер фильтра
6. уровень игрока
7. айди локации
Если создать для мемкеша ключи из всех данных, кроме фильтра, то все отлично работает. Если же сюда добавить фильтр, то ключ для одной и той же заявки у персонажей разных уровней будет выглядеть по разному.
Как грамотно это все разрулить?
На данный момент пришли к вывыводу, что nginx может только взять данные из мемкеша по ключу, сжать их и передать клиенту, а сортировки все с учетом фильтра проводить уже на стороне клиента. Но к сожалению при таком вариенте клиент будет очень сильно нагружен и поэтому он не подходит. И плюс заявок может быть слишком много.