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

Redis SMOVE 명령어 – 한 세트(Set)에서 다른 세트로 요소 이동하는 방법

이 튜토리얼에서는 Redis 데이터 저장소에 저장된 하나의 세트(Set) 값에 있는 요소를 다른 세트 값으로 이동하는 방법을 배워보겠습니다. 이를 위해 redis-cli에서 SMOVE 명령어를 사용합니다.

SMOVE 명령어는 source(원본) 키에 저장된 세트 값에서 지정된 요소를 제거하고, 동일한 요소를 destination(대상) 키에 저장된 세트 값에 추가합니다. 이 연산은 원자적(atomic)으로 수행되기 때문에, 어떤 순간에도 지정된 요소는 반드시 원본 세트 또는 대상 세트 중 하나에만 속해 있게 됩니다.

SMOVE 명령어의 주요 특징

다음과 같은 경우에는 별도의 처리가 이루어집니다.

  • source 키에 해당하는 세트 값이 존재하지 않거나, 지정된 요소가 그 세트에 포함되어 있지 않으면 아무 연산도 수행하지 않고 0을 반환합니다.
  • 지정된 요소가 destination 키의 세트 값에 이미 존재하는 경우, 요소는 source 세트에서만 제거됩니다.
  • source 또는 destination 키가 세트 값을 가지고 있지 않으면 에러가 반환됩니다.

문법

redis host:port> SMOVE <source> <destination> <element>
  • <source> : 요소를 제거할 원본 세트의 키
  • <destination> : 요소를 추가할 대상 세트의 키
  • <element> : 이동할 요소

반환값

  • 1 : 요소가 source에서 destination으로 성공적으로 이동된 경우
  • 0 : source 키가 존재하지 않거나, 해당 요소가 source 세트의 멤버가 아닌 경우
  • Error : source 또는 destination 키가 세트 값을 가지고 있지 않은 경우

사용 예시

Redis SMOVE 명령어 – 한 세트(Set)에서 다른 세트로 요소 이동하는 방법

예시 설명

위 예시처럼 SMOVE myset1 myset2 "member" 형태로 실행하면, myset1 세트에서 해당 멤버가 제거되고 myset2 세트에 추가됩니다. 실행 결과로 1이 반환되면 이동이 성공한 것이며, SMEMBERS 명령어로 각 세트의 멤버 목록을 확인해 보면 요소가 실제로 이동했음을 검증할 수 있습니다.

참고 자료

  1. Redis 공식 문서 – SMOVE Command Docs

지금까지 Redis 데이터 저장소에서 한 세트 값의 요소를 다른 세트 값으로 이동하는 방법을 살펴보았습니다. 이 글이 도움이 되었다면 댓글로 의견을 남겨주시고, 주변에도 널리 공유해 주세요.