Redis/redis
[Redis] sorted sets
오늘도개발
2024. 5. 9. 14:01
1. Redis sorted sets 란?
- 정렬된 집합
- Score를 기준으로 정렬됨
2. Redis sorted sets 사용 방법
- ZADD와 ZREM 로 데이터 입력 및 제거 가능
> ZADD trip_scores 10 tripId:1
(integer) 1
> ZADD trip_scores 12 tripId:3
(integer) 1
> ZADD trip_scores 8 tripId:5 9 tripId:8 6 tripId:11 14 tripId:20
(integer) 4
> ZREM trip_scores tripId:20
(integer) 1
- ZRANGE(오름차순)와 ZREVRAMGE(내림차순) 로 데이터 출력 가능
> ZRANGE trip_scores 0 -1
1) "tripId:11"
2) "tripId:5"
3) "tripId:8"
4) "tripId:1"
5) "tripId:3"
> ZREVRANGE trip_scores 0 -1
1) "tripId:3"
2) "tripId:1"
3) "tripId:8"
4) "tripId:5"
5) "tripId:11"
- ZRANK(오름차순)와 ZREVRANK(내림차순) 로 데이터 순서 출력 가능
> ZRANK trip_scores "tripId:11"
(integer) 0
> ZREVRANK trip_scores "tripId:11"
(integer) 5
- ZINCRBY 로 score 값 수정 가능
> ZINCRBY trip_scores 50 "tripId:3"
"62"
3. Redis sorted sets 성능
- 입력시 정렬 시간복잡도 O(log(n))
- 출력시 시간 복잡도 O(log(n) + m)
* m 은 반환된 결과 수
- 데이터가 적을 때, zip list로 동작
- 데이터가 많을 때, skip list로 동작