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

Redis SINTER 명령어로 집합 교집합 구하기 – SINTER vs SINTERSTORE 완벽 정리

이 튜토리얼에서는 Redis 데이터 저장소에 저장된 두 개 이상의 집합(Set) 값에 대해 교집합(intersection) 연산을 수행하는 방법을 알아봅니다. Redis에서 제공하는 SINTER 명령어와 SINTERSTORE 명령어를 활용하면 손쉽게 교집합을 구할 수 있습니다.

집합의 교집합(Intersection)이란?

집합론에서 두 개 이상의 집합의 교집합이란, 모든 집합에 공통으로 포함된 요소들만으로 이루어진 집합을 의미합니다. 예를 들어 다음과 같습니다.

A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8, 9}

A와 B의 교집합 :-
A ∩ B = {4, 5}

Redis SINTER 명령어로 집합 교집합 구하기 – SINTER vs SINTERSTORE 완벽 정리

SINTER 명령어

SINTER 명령어는 지정된 두 개 이상의 집합에 대해 교집합 연산을 수행하고, 그 결과를 배열(array) 형태로 반환합니다. 만약 지정된 키 중 하나라도 존재하지 않으면 해당 키는 빈 집합(empty set)으로 간주됩니다. 반면, 키는 존재하지만 저장된 값이 집합 타입이 아니라면 에러가 반환됩니다.

문법

redis host:port> SINTER <keyName 1> <keyName 2> <keyName 3>

반환값

- (array): 교집합 연산 결과로 나온 요소들을 담은 배열
- Error: 키가 존재하지만 저장된 값이 집합 타입이 아닌 경우

예제

Redis SINTER 명령어로 집합 교집합 구하기 – SINTER vs SINTERSTORE 완벽 정리

SINTERSTORE 명령어

SINTERSTORE 명령어 역시 지정된 두 개 이상의 집합에 대해 교집합 연산을 수행하지만, 결과를 배열로 반환하는 대신 새로운 집합으로 만들어 지정한 목적지(destination) 키에 저장한다는 점이 다릅니다. 지정된 키 중 하나라도 존재하지 않으면 빈 집합으로 간주되며, 키가 존재하는데 저장된 값이 집합 타입이 아니라면 에러가 반환됩니다.

문법

redis host:port> SINTERSTORE <destination keyName> <keyName 1> <keyName 2> <keyName 3>

반환값

- (integer): 목적지 집합에 저장된 요소의 개수
- Error: 키가 존재하지만 저장된 값이 집합 타입이 아닌 경우

예제

Redis SINTER 명령어로 집합 교집합 구하기 – SINTER vs SINTERSTORE 완벽 정리

참고 자료

  1. SINTER 명령어 공식 문서
  2. SINTERSTORE 명령어 공식 문서

지금까지 Redis 데이터 저장소에 저장된 두 개 이상의 집합 값에 대해 교집합 연산을 수행하는 방법을 살펴보았습니다. 이 글이 도움이 되었다면 댓글로 의견을 남겨주시고, 주변에도 널리 공유해 주세요!