반응형
이번에 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
반응형
'Delvelopment > Redis' 카테고리의 다른 글
프로모션을 대비한 대기열 시스템 구성하기 (Redis, WebSocket, Spring) (2) | 2022.08.10 |
---|---|
캐시(Cache) Local Cache & Global Cache (0) | 2021.03.11 |
Redis의 자료형, 특징과 시간복잡도 그리고 클러스터 (0) | 2021.03.10 |
REDIS Key Evict 하는 두가지 방법 (키 삭제, 키 초기화) (0) | 2020.03.13 |
REDIS 명령어 (keys, Scan, get, flushall, Del 등) (0) | 2020.03.13 |
댓글