본문 바로가기
Delvelopment/Redis

[REDIS] Sorted Set 명령어 정리

by 제제킴 2021. 8. 6.
반응형

이번에 Redis 자료형 중 Sorted Set 을 사용하여 관련 명령어를 정리하고자 한다.

 

Sorted Set

- Set과 Hash가 혼합된 타입이다.

- 하나의 Key에 Socre와 Value로 구성이된다. 

- Socre 기준으로 정렬이 가능한 형태이다. (Score : floating point value)

- Value는 Score로 Sort되며 Score가 같으면 Value로 Sort 된다.

 

반응형

[ZADD] Key에  Value, Score를 추가 

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 1 "uno"
(integer) 1
redis> ZADD myzset 2 "two" 3 "three"
(integer) 2
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "uno"
4) "1"
5) "two"
6) "2"
7) "three"
8) "3"

 

[ZRANGE] Key의 Index Range를 이용해 ELEMENTS를 반환한다. WITHSCORE를 명시할 경우 SCORE도 같이 Return

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZRANGE myzset 0 -1
1) "one"
2) "two"
3) "three"
redis> ZRANGE myzset 2 3
1) "three"
redis> ZRANGE myzset -2 -1
1) "two"
2) "three"


redis> ZRANGE myzset 0 1 WITHSCORES
1) "one"
2) "1"
3) "two"
4) "2"
redis>

 

[ZCARD] Key의 ELEMENT의 개수를 Return

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZCARD myzset
(integer) 2

 

[ZREM] Key의 ELEMENT를 제거

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREM myzset "two"
(integer) 1
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "three"
4) "3"

 

[ZSCORE] Key에서 ELEMENT의 SCORE값을 Return

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZSCORE myzset "one"
"1"

 

[ZRANK] Key에서 ELEMENT의 SCORE 순위를 Return

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZRANK myzset "three"
(integer) 2
redis> ZRANK myzset "four"
(nil)

 

[ZREVRANK] Key에서 ELEMENT의 SCORE 역순위 Return

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREVRANK myzset "one"
(integer) 2
redis> ZREVRANK myzset "four"
(nil)

 

[ZRANGE] Key에서 ELEMENT의 SCORE를 N만큼 증가시킨다.

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"

(integer) 1
redis> ZINCRBY myzset 2 "one"
"3"
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "two"
2) "2"
3) "one"
4) "3"

 

[ZCOUNT] Key에서 Index Range 사이의 Element의 개수를 Return ( '(' 는 제외, '[' 는 포함한다는 것을 의미 )

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZCOUNT myzset -inf +inf
(integer) 3
redis> ZCOUNT myzset (1 3
(integer) 2

 

[ZPOPMAX] Key에서 Score값이 가장 큰 Element를 제거

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZPOPMAX myzset
1) "three"
2) "3"

 

[ZPOPMIN] Key에서 Score값이 가장 작은 Element를 제거

redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZPOPMIN myzset
1) "one"
2) "1"

 

 

 

(참고자료)

Redis.io 에서 공식적으로 제공하는 Doc...

https://redis.io/commands/zadd

 

 

 

반응형

댓글