특정 키에 멤버를 추가 할 수 있다. 멤버를 추가 할 때는 스코어(score)를 설정 할 수 있다. 멤버는 스코어를 기준으로 정렬되서 저장된다. 이미 존재하는 멤버라면 멤버의 스코어가 업데이트되며, 재 정렬된다. 스코어&멤버 쌍으로 저장이 되며, 하나 이상을 설정 할 수 있다.
key 가 없다면, 새로운 key가 만들어지고 첫 멤버가 추가된다. 스코어는 부동 소수점 숫자여야 한다.
ZADD 옵션 (Redis 3.0.2 이상)
ZADD는 키 이름 다음에 몇 개의 옵션을 설정 할 수 있다. 옵션은 아래와 같다.
XX : 이미 멤버가 존재할 때만 업데이트를 한다. 멤버가 없다면 추가하지 않는다.
NX : 이미 멤버가 존재할 경우 업데이트를 하지 않는다. 항상 새 멤버를 추가한다.
INCR : ZINCRBY와 같은 역할을 한다. 스코어를 기존 스코어에 더한다.
CH : 몇 개의 멤버의 값이 업데이트 됐는지를 출력한다.
정수 범위
REDIS sorted set은 double 64 비트 부동 소숫점을 이용해서 스코어(score)를 나타낸다. 값은 -2^53 에서 2^53 사이의 정수를 정확히 표현 할 수 있는 IEEE 754 부동 소수점 숫자로 표현된다. -9007199254740992에서 9007199254740992 사이의 정수를 완벽하게 나타낼 수 있다. 이 보다 더 정수는 내부적으로 지수 형식으로 표현하기 때문에 근사치 값만을 얻을 수 있다.
Sorted sets 기본
Sorted sets은 스코어를 기준으로 오름차순으로 정렬된다. 동일한 멤버는 하나만 존재할 수 있다. 추가하려는 멤버가 이미 존재해서 기존 스코어를 업데이트 할 경우 새로 정렬이 된다. 이전 스코어를 기준으로 상대적인 값으로 업데이트를 하고 싶다면 ZINCRBY를 사용한다.
멤버의 스코어는 ZSCORE 명령으로 검색 할 수 있다. ZSCORE 명령은 멤버가 존재하는지를 확인하는 용도로도 사용 할 수 있다.
값은 스코어를 가지는 멤버의 추가
Sorted sets에는 오로지 모든 멤버가 유일하다. 동일한 2개 이상의 멤버가 존재 할 수 없다. 하지만 같은 스코어를 가지는 멤버는 존재할 수 있다. 같은 스코어를 가지는 여러 멤버가 존재할 경우 이 멤버들은 사전순으로 정렬된다.(즉 우선 스코어에 따라 정렬이되며, 스코어가 같을 경우 사전을 기준으로 정렬된다.)
ZRANGEBYLEX명령을 사용하면, 멤버에 대한 범위 쿼리가 가능하다. 또한 ZRANGEBYSCORE를 사용해서 스코어 범위별로 정렬된 검색을 할 수 있다.
리턴 값
Integer 정수 값을 리턴한다.
Sorted Set에 추가된 멤버의 갯수다. 같은 이름의 멤버가 있을 경우, 스코어만 업데이트 되며 추가 멤버 갯수에는 포함되지 않는다.
Contents
ZADD key [NX|XX] [CH] [INCR] score member [score member ...]
ZADD 옵션 (Redis 3.0.2 이상)
정수 범위
Sorted sets 기본
값은 스코어를 가지는 멤버의 추가
리턴 값
예제
응용
참고
Recent Posts
Archive Posts
Tags