본문으로 바로가기

Redis, Collections - Sorted Set

category Server/Redis 2022. 12. 3. 15:47
728x90
반응형

Sorted Set

  • 하나의 Key에 여러개의 Score와 Value로 구성된다
  • Score를 기준으로 정렬이 가능하다
    • value는 score로 sort되며 score가 같으면 value로 sort 된다.
    • score가 같으면 value로 sort됩니다.
  • Sorted Sets에서는 집합이라는 의미에서 value를 member라 부릅니다.
  • Sorted Sets은 주로 정렬이 필요한 곳에 사용한다.



ZADD - 데이터 추가

zadd는 Sorted Sets에 데이터를 추가한다. ZADD KEY [score] [value] 순으로 입력

redis:6379> zadd test 10 a
(integer) 1
redis:6379> zadd test 20 b
(integer) 1
redis:6379> zadd test 15 c
(integer) 1

ZADD KEY [score] [value] [score] [value] 순으로 여러 입력이 가능하다.

redis:6379> zadd test 25 d 30 e
(integer) 2

value의 중복을 허용하지 않고, value가 같은 경우 score를 업데이트 처리한다.

redis:6379> zadd test3 1 a
(integer) 1
redis:6379> zrange test3 0 -1 withscores
1) "a"
2) "1"
redis:6379> zadd test3 2 a
(integer) 0
redis:6379> zrange test3 0 -1 withscores
1) "a"
2) "2"

 

ZRANGE - 데이터 확인

zrange는 sorted set의 value 를 반환한다. ZRANGE KEY [START_INDEX] [END_INDEX] 순으로 입력한다.

redis:6379> zrange test 0 -1
1) "a"
2) "c"
3) "b"

표출 순서는 value 기준으로 score 내림차순. ZRANGE KEY [START_INDEX] [END_INDEX] withscores 를 입력하면 score와 함께 출력한다.

redis:6379> zrange test 0 -1 withscores
1) "a"
2) "10"
3) "c"
4) "15"
5) "b"
6) "20"

score가 같으면 member 순으로 정렬된다.

redis:6379> zadd test2 10 c 10 b 10 a
(integer) 3
redis:6379> zrange test2 0 -1 withscores
1) "a"
2) "10"
3) "b"
4) "10"
5) "c"
6) "10"

 

ZRANK - Sorted Set 데이터 순위 확인

ZRANK는 VALUE의 순위를 반환한다.

redis:6379> zrange test 0 -1 withscores
 1) "a"
 2) "10"
 3) "c"
 4) "15"
 5) "b"
 6) "20"
 7) "d"
 8) "25"
 9) "e"
10) "30"

ZRANK KEY VALUE 순으로 입력한다.

redis:6379> zrank test a
(integer) 0
redis:6379> zrank test c
(integer) 1
redis:6379> zrank test b
(integer) 2
redis:6379> zrank test d
(integer) 3
redis:6379> zrank test e
(integer) 4

ZREVRANK - Sorted Set의 데이터 순위 반환

ZREVRANK는 score가 큰 순으로 0부터 index를 매긴 결과를 리턴한다. ZREVRANK KEY VALUE 순으로 입력한다

redis:6379> zrevrank test a
(integer) 4
redis:6379> zrevrank test b
(integer) 2
redis:6379> zrevrank test a
(integer) 4
redis:6379> zrevrank test c
(integer) 3
redis:6379> zrevrank test b
(integer) 2
redis:6379> zrevrank test d
(integer) 1
redis:6379> zrevrank test e
(integer) 0




728x90
반응형

'Server > Redis' 카테고리의 다른 글

[Redis] Redis Lock과 Redis Connection Pool  (0) 2024.02.07
Redis, Persistence - AOF  (0) 2022.12.11
Redis, Collections - Hashes  (0) 2022.11.27
Redis, Collection - Sets  (0) 2022.11.27
Redis, Collection - Lists  (0) 2022.11.27