Computer >> 컴퓨터 >  >> 프로그래밍 >> Redis

Redis ZADD 명령어 – 정렬된 셋(Sorted Set)에 요소를 생성하고 추가하는 방법

이 튜토리얼에서는 Redis ZADD 명령어를 사용하여 키에 저장된 정렬된 셋(sorted set) 값에 요소를 생성하고 추가하는 방법을 알아봅니다.

ZADD 명령어는 지정된 키에 저장된 정렬된 셋에 하나 이상의 요소와 각각의 점수(score)를 추가하는 데 사용됩니다. 만약 지정한 요소가 이미 존재한다면 해당 요소의 점수가 업데이트되고, 올바른 순서를 유지할 수 있도록 적절한 위치에 다시 삽입됩니다. 점수 값은 배정밀도 부동 소수점(double precision floating point) 숫자의 문자열 형태여야 하며, +inf-inf 값도 유효하게 사용할 수 있습니다.

키가 데이터스토어에 존재하지 않으면, 삽입 작업을 수행하기 전에 새로운 정렬된 셋이 먼저 생성됩니다. 반면 키는 존재하지만 저장된 값이 정렬된 셋 데이터 타입이 아닌 경우에는 오류가 반환됩니다.

ZADD 명령어의 선택적 인자(Options)

Redis ZADD 명령어는 다음과 같은 선택적 인자를 지원합니다.

  1. XX : 정렬된 셋에 이미 존재하는 요소만 업데이트하며, 새로운 요소는 절대 추가하지 않습니다.
  2. NX : 정렬된 셋에 새로운 요소만 추가하며, 기존에 존재하는 요소는 업데이트하지 않습니다.
  3. CH : 반환값을 '새로 추가된 요소 수'에서 '변경된 요소의 총 개수'로 변경합니다. 여기서 변경된 요소란 새로 추가된 요소점수가 업데이트된 기존 요소를 의미합니다. 따라서 명령어 실행 시 지정된 요소 중 과거와 동일한 점수를 가진 요소는 개수에 포함되지 않습니다.
  4. INCR : 이 옵션을 지정하면 ZADD가 ZINCRBY 명령어처럼 동작합니다. 이 모드에서는 하나의 score-element 쌍만 지정할 수 있으며, 키가 이미 존재하는 경우에만 값을 설정합니다.

정렬된 셋의 요소들은 점수를 기준으로 오름차순으로 정렬됩니다. 점수가 동일한 요소들 사이에는 사전순(lexicographical order) 순서가 유지됩니다.

기본 문법(Syntax)

redis host:post> ZADD <key> [XX|NX] [CH] [INCR] <score> <member> [<score> <member>]

반환값(Output)

- (integer): 정렬된 셋에 새로 추가된 요소의 개수를 반환하며,
  이미 존재했던 요소는 포함되지 않습니다.
- error: 키가 존재하지만 키에 저장된 값이 정렬된 셋이 아닌 경우 반환됩니다.

사용 예제(Example)

Redis ZADD 명령어 – 정렬된 셋(Sorted Set)에 요소를 생성하고 추가하는 방법

참고 자료(References)

  1. ZADD 공식 문서(ZADD Command Docs)

지금까지 Redis 데이터스토어에 저장된 정렬된 셋 값에 요소를 생성하고 추가하는 방법에 대해 알아보았습니다. 내용이 유용했다면 댓글로 의견을 남겨주시고, 주변에도 널리 공유해 주세요!