Вам не нужно создавать 20 различных экземпляров ElastiCache, вы можете просто использовать один (вам нужно выбрать тип экземпляра в зависимости от размера, сети и c).
Всякий раз, когда вам нужно добавить Для нового пользователя до уровня (обновите счет, если он существует), вам нужно выполнить zadd
с ключом уровня, пользователем и счетом (баллами в вашем домене). zadd также поддерживает настройку нескольких пользовательских оценок одновременно.
> ZADD leaderboard:1 154 "user273"
(integer) 1
> ZADD leaderboard:2 12 "user786"
(integer) 1
> ZADD leaderboard:3 221 "user:6817" 912 "user:21233"
(integer) 2
Когда user:123
входит в таблицу лидеров со счетом 15
, а затем получает 19
, его очки (баллы) будут перезаписаны когда вы выполните zadd
.
У вас будет отсортированный набор, заполненный уникальными пользователями с соответствующими баллами. Хитрые части здесь; Если вы собираетесь получить 5 лучших пользователей, вам нужно использовать zrevrange
вместо zrange
, потому что ваш ранг будет меньше (порядок чисел c), когда ваши очки выше. В этом случае
zrevrange leaderboard:1 0 4 withscores
даст вам 5 лучших пользователей на уровне 1. withscores
необязательно.