사용자 스코어를 추가시 사용
ZADD 는 Sorted Set 에 값을 추가하는 경우 사용된다.
ZADD key score1 member1 [score2 member2 ...]
- 이런식으로 key : Sorted Set 의 이름
- score1
- 첫 번째 멤버에 대한 점수
- member1
- 첫 번째 멤버
[score2 member2 ... ]
(선택) 추가적으로 입력할 점수와 멤버 쌍
daily-score:220817
이라는 Sorted Set 에 플레이어와 그들의 점수를 추가하기 ZRANGE
명령어로 정렬된 결과를 확인 가능하다. 주간 리더보드 초기화 및 랭킹 합산
매주 월요일마다 리더보드를 초기화한다고 가정.
특정 주의 주간 리더보드를 계산하려면 각 일자의 스코어를 합산해야 한다.
이를 위하여 Redis 의 ZUNIONSTORE
커맨드 사용
- 지정한 키들에 있는 각 아이템의 점수를 합산하여 새로운 Sorted Set 에 저장한다.
ZUNIONSTORE
기본 사용법은 다음과 같다
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
destination
numkeys
key [key ...
WEIGTHS weight [weigh …]
AGGREGATE SUM|MIN|MAX
- (선택임) 합산 방식을 지정한다
- 기본값은 SUM 이다.
22년 8월 15 ~ 17일까지의 데이터를 합산해 주간 리더보드 계산
ZUNIONSTORE weekly-score:2208-3 3 daily-score:220817 daily-score:220818 daily-score:220819
ZREVRANGE
- 점수 순서의 역순으로 데이터를 반환한다.
![](https://velog.velcdn.com/images/qkrtkdwns3410/post/9bbfcd4d-d3be-423b-934e-68b0398a70fe/image.png)
특정 일자의 점수에 가중치를 적용하려면 WEIGHT
옵션을 사용해야한다.
8월 16일
의 점수에 2 배의 가중치를 적용하려면 다음과 같이 한다.
ZUNIONSTORE weekly-score:2208-3 3 daily-score:220815 daily-score:220816 daily-score:220817 WEIGHTS 1 2 1