ZADD

레디스 개발자 교육 신청 레디스 정기점검/기술지원
Redis Technical Support
레디스 엔터프라이즈 서버
Redis Enterprise Server

집합에 데이터를 score와 함께 추가

사용법은 zadd key score member 이다.
sadd에서 score가 추가된 형태이다.
score는 반드시 숫자여야 한다. 문자는 입력할 수 없다.

Example

명령>zadd myzip 60 "경기"
결과>1
명령>zadd myzip 20 "서울"
결과>1
명령>zadd myzip 40 "부산"
결과>1
명령>zrange myzip 0 -1   score 순서로 표시된다
결과> 1) 서울
2) 부산
3) 경기
명령>zrange myzip 0 -1 withscores   withscores 옵션을 사용하면 score가 표시된다
결과> 1) 20 -> 서울
2) 40 -> 부산
3) 60 -> 경기

애니메이션 보기

Note score의 정수 범위는 -9007199254740992 -(2^53) 부터 9007199254740992 +(2^53) 이고,
실수 범위는 Double precision floating point number 입니다.
withscores 옵션을 사용했을때 redis-cli는 value와 score가 각각 다른 line에 표시되는 반면, Redis Web Client는 위 결과와 같이 한 line에 score -> value 형태로 표시된다.

score member를 여러 개 입력 가능

사용법은 zadd key score member score member 이다.

Example

명령>zadd myzip 100 "충청"80 "전라"
결과>2
명령>zrange myzip 0 -1 withscores
결과> 1) 20 -> 서울
2) 40 -> 부산
3) 60 -> 경기
4) 80 -> 전라
5) 100 -> 충청

score가 같으면 member로 sort 됨

Example

명령>del myzip
결과>1
명령>zadd myzip  10 "충청"  10 "전라"  10 "서울"  10 "경기"  10 "부산"
결과>5
명령>zrange myzip 0 -1 withscores
결과> 1) 10 -> 경기
2) 10 -> 부산
3) 10 -> 서울
4) 10 -> 전라
5) 10 -> 충청

애니메이션 보기


member의 중복은 허용되지 않으나

score는 update 된다. 하지만 0을 리턴하므로 score도 update하지 않는 것으로 오해할 수 있다.

Example

명령>zadd myzip  1 "서울"
결과>0   0을 리턴한다
명령>zrange myzip 0 -1 withscores
결과> 1) 1 -> 서울   score가 1로 update 되었다
2) 10 -> 경기
3) 10 -> 부산
4) 10 -> 전라
5) 10 -> 충청

애니메이션 보기


버전 3.0.2에서 추가된 옵션

  • NX: 멤버가 이미 있으면 업데이트하지 않고 없을 경우에만 추가한다.
  • XX: 이미 존재하는 멤버에 스코어를 업데이트한다.
  • CH: 스코어를 업데이트한 경우에만 업데이트한 멤버수를 리턴한다. 스코어가 같으면 0을 리턴하고, 다르면 업데이트하고 1을 리턴한다. 리턴 값에만 영향을 미치는 옵션이다.
  • INCR: 스코어를 주어진 값만큼 증가시킨다.

버전 6.2.0에서 추가된 옵션

  • LT: 새 스코어가 현재 스코어 보다 적은 경우에만 기존 요소를 업데이트 합니다.
  • GT: 새 스코어가 현재 스코어 보다 큰 경우에만 기존 요소를 업데이트 합니다.


명령문

ZADD key [NX|XX] [GT|LT] [CH] [INCR] score member [score member ...]   [ex seconds]

  • 이 명령은 version 1.2.0 부터 사용할 수 있습니다.
  • 논리적 처리 소요시간은 O(log(N))이다. N은 집합의 member 개수입니다.
  • version 2.4 이후 부터 member를 여러 개 입력할 수 있습니다.
  • add된 member 개수를 리턴합니다.
  • 서브쿼리와 멤버 자동 삭제 기능은 Enterprise 서버에서 사용할 수 있습니다.
SQL Insert Redis Enterprise 7.3.0 이상이면 INSERT를 사용해보세요.
관련 명령 ZRANGE, ZREM, SADD, LPUSH, HSET
Clients for Java Jedis, Lettuce, Redisson
Clients for C Hiredis

<< SORTED SETS Introduction ZADD ZADDS >>

Email 답글이 올라오면 이메일로 알려드리겠습니다.