Мне было интересно, может ли кто-нибудь дать несколько предложений о том, как сделать генерацию отсортированного набора более эффективной?
Я работаю над проектом, в котором данные рейтинга рассчитываются ежечасно и хранятся в базе данных. Данные можно фильтровать по полу участника, стране и т. д. Необходимо обработать около 2 миллионов строк, и это занимает много времени.
Мы хотим перейти к более реальному времени, когда данные хранятся, сортируются и фильтруются в Redis, а также выполняется ежедневная чистая перестройка.
В моем прототипе я создаю отсортированный набор для каждой возможной комбинации фильтров, например: Leaderboard.au.male, Leaderboard.au.female и т. д. Я записал этот процесс, но как только вы обработаете каждый случай, это означает, что есть 118 отсортированных наборы созданы.
В идеале я хотел бы иметь единый отсортированный набор ранжирования и наборы хэшей для каждого члена, содержащие их имя, пол и страну. Затем с помощью Redis возвращаются только отсортированные значения набора на основе определенных пользователем фильтров. (например, получить рейтинг только для мужчин из Австралии).
Возможно ли это сделать изначально в Redis?