Redis를 이용한 랭킹 페이지

현우·2022년 2월 24일
0

Redis

목록 보기
3/4

1. 왜 Redis를 사용할까?

랭킹을 만드는데에 있어서 Redis를 사용하는 이유는 다음과 같다.

1. NoSQL이며 인메모리 DB이다.

  • RDBMS를 사용한다면 SELECT 쿼리로 조회하고 정렬함에 있어서 많은 자원과 시간을 소모할 것이다.
  • NoSQL은 많은 양의 데이터를 효율적으로 처리가 가능하다.
  • 인메모리 DB이기 때문에 데이터 처리 속도가 빠르다.

2. 중복을 해결한다.

  • 한 사람이 1등이고, 2등일 수 없다.

3. Sorted Set을 지원한다.

  • score에 따라 자동적으로 value를 sort 한다. 추가적으로 sort를 하면서 자원을 소모하지 않아도 된다.

2. Sorted Set을 알아보자.

1. Sorted Set의 구조

Sorted Sets는 Set과 Hash가 합쳐진 모양이다.

  • 하나의 key를 가지고 있으며, 여러 개의 score와 value의 쌍들으로 구성된다.
  • score는 이중 64비트 부동 소수점 숫자를 사용하여 점수를 저장한다.

- score 중복시

score가 같으면 value로 sort된다.

2. Sorted Set의 명령어

1. ZADD

ZADD [KEY] [score1] [value1] [score2] [value2] ...

KEY에 score1인 value1과 score2인 ELEMENT2를 넣는다. 더 많은 쌍 추가가 가능하다.

2. ZRANGE

ZRANGE [KEY] [START_INDEX] [END_INDEX] [WITHSCORE]

START_INDEX부터 END_INDEX 까지의 Value 값을 반환한다. WITHSCORE 옵션을 추가하면 SCORE도 함께 반환된다.

역순의 경우 ZREVRAGNE 를 사용한다.

3. ZINCRBY

ZINCRBY [KEY] [NUMBER] [Value]

KEY에서 Value의 SCORE를 NUMBER만큼 증가시킨다.
랭킹에 따른 점수를 수정할 때 사용할 예정이다.

추가적인 다양한 명령어는 이 블로그에 자세히 설명되어 있다.

0개의 댓글