Redis: исключение значений из отсортированного набора на основе значения хеш-поля

Мне интересно, может ли кто-нибудь дать несколько предложений о том, как сделать генерацию отсортированных наборов более эффективной?

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

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

В моем прототипе я создаю отсортированный набор для каждой возможной комбинации фильтров, например: Leaderboard.au.male, Leaderboard.au.female и т. д. Я записал этот процесс, но как только вы обработаете каждый случай, это означает, что есть создано 118 отсортированных наборов.

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

Можно ли это сделать изначально в Redis?

6
задан Bobby Sciacchitano 29 March 2012 в 22:43
поделиться