소개
이 랩에서는 고유한 문자열의 정렬되지 않은 컬렉션을 조작하는 데 중점을 두고 Redis set 연산을 탐구합니다. SADD 명령을 사용하여 set 에 요소를 추가하고, SUNION으로 set union 을 수행하며, SINTER를 사용하여 공통 요소를 찾고, SDIFF로 set 간의 차이점을 식별하는 방법을 배우게 됩니다. 마지막으로, set 연산의 결과를 나중에 사용하기 위해 저장하는 방법을 배우게 됩니다.
SADD 로 Set 에 요소 추가하기
이 단계에서는 SADD 명령을 사용하여 Redis set 에 요소를 추가하는 방법을 배우게 됩니다. Redis 의 set 은 고유한 문자열의 정렬되지 않은 컬렉션입니다. 즉, set 의 각 요소는 고유해야 하며, 요소가 set 에 추가되는 순서는 유지되지 않습니다.
SADD 명령은 하나 이상의 멤버를 set 에 추가합니다. 지정된 멤버가 이미 set 의 멤버인 경우, 해당 멤버는 무시됩니다. set 이 존재하지 않는 경우, 지정된 멤버 (들) 로 새로운 set 이 생성됩니다.
Redis 서버에 연결하는 것으로 시작해 보겠습니다. 터미널을 열고 다음 명령을 실행합니다.
redis-cli
이 명령은 Redis command-line interface 를 엽니다.
이제 my_set이라는 set 에 몇 가지 요소를 추가해 보겠습니다. 다음 명령을 실행합니다.
SADD my_set "apple" "banana" "cherry"
이 명령은 문자열 "apple", "banana", "cherry"를 set my_set에 추가합니다. 출력은 set 에 성공적으로 추가된 요소의 수를 나타내는 정수입니다. 이 경우, 출력은 3이어야 합니다.
(integer) 3
이제 set 에 이미 존재하는 요소를 추가해 보겠습니다. 다음 명령을 실행합니다.
SADD my_set "apple"
이 명령은 문자열 "apple"을 set my_set에 추가하려고 시도합니다. 그러나 "apple"이 이미 set 의 멤버이므로 무시됩니다. 출력은 0이며, 이는 새로운 요소가 추가되지 않았음을 나타냅니다.
(integer) 0
요소가 set 에 추가되었는지 확인하려면 SMEMBERS 명령을 사용할 수 있습니다. 다음 명령을 실행합니다.
SMEMBERS my_set
이 명령은 my_set set 의 모든 멤버 목록을 반환합니다. 출력은 다음과 같아야 합니다.
1) "cherry"
2) "banana"
3) "apple"
출력의 요소 순서가 추가된 순서와 다를 수 있습니다. 이는 set 이 정렬되지 않은 컬렉션이기 때문입니다.
마지막으로, Redis CLI 를 종료합니다.
exit
명령이 기록되도록 redis-cli를 종료하는 것이 중요합니다.
이제 SADD 명령을 사용하여 Redis set 에 요소를 성공적으로 추가했습니다. 이는 Redis 에서 set 작업을 위한 기본적인 연산이며, 다음 단계에서 더 복잡한 연산을 수행하는 데 사용됩니다.
SUNION 으로 합집합 계산하기
이 단계에서는 SUNION 명령을 사용하여 여러 Redis set 의 union 을 계산하는 방법을 배우게 됩니다. set 의 union 은 원래 set 중 하나에 존재하는 모든 고유 요소를 포함하는 새로운 set 입니다.
먼저, my_set2라는 새로운 set 에 몇 가지 요소를 추가해 보겠습니다. 다음을 사용하여 Redis 서버에 연결합니다.
redis-cli
이제 my_set2에 요소를 추가합니다.
SADD my_set2 "banana" "grape" "orange"
이 명령은 "banana", "grape", "orange"를 my_set2에 추가합니다. 출력은 3이어야 합니다.
(integer) 3
이제 my_set ( "apple", "banana", "cherry" 포함) 과 my_set2 ( "banana", "grape", "orange" 포함) 의 두 set 이 있으므로, SUNION 명령을 사용하여 union 을 계산할 수 있습니다. 다음 명령을 실행합니다.
SUNION my_set my_set2
이 명령은 my_set과 my_set2의 union 을 반환합니다. 출력은 두 set 중 하나에 존재하는 모든 고유 요소의 목록이 됩니다.
1) "orange"
2) "grape"
3) "apple"
4) "banana"
5) "cherry"
"banana"가 my_set과 my_set2 모두에 존재하지만 결과에 한 번만 나타나는 것을 확인하세요. 이는 set 이 고유한 요소만 포함하기 때문입니다. 결과의 요소 순서는 보장되지 않습니다.
마지막으로, Redis CLI 를 종료합니다.
exit
SUNION 명령은 set 의 union 을 클라이언트에 직접 반환합니다. 결과를 새로운 set 에 저장하려면, 이 랩에서 다루지 않는 SUNIONSTORE 명령을 사용할 수 있습니다.
이 단계에서는 SUNION 명령을 사용하여 여러 Redis set 의 union 을 계산하는 방법을 배웠습니다. 이는 여러 set 의 데이터를 단일 set 으로 결합하는 데 유용한 연산입니다.
SINTER 로 교집합 계산하기
이 단계에서는 SINTER 명령을 사용하여 여러 Redis set 의 교집합을 계산하는 방법을 배우게 됩니다. set 의 교집합은 원래 set 의 모두에 존재하는 요소만 포함하는 새로운 set 입니다.
다음을 사용하여 Redis 서버에 연결합니다.
redis-cli
우리는 이미 두 개의 set, my_set ( "apple", "banana", "cherry" 포함) 과 my_set2 ( "banana", "grape", "orange" 포함) 를 가지고 있습니다. SINTER 명령을 사용하여 교집합을 계산해 보겠습니다. 다음 명령을 실행합니다.
SINTER my_set my_set2
이 명령은 my_set과 my_set2의 교집합을 반환합니다. 출력은 두 set 모두에 존재하는 모든 요소의 목록이 됩니다.
1) "banana"
"banana"만 my_set과 my_set2 모두에 존재한다는 것을 확인하세요. 따라서 두 set 의 교집합은 "banana"만 포함하는 set 입니다.
my_set3이라는 세 번째 set 을 추가하고 "banana"와 "apple"을 추가해 보겠습니다.
SADD my_set3 "banana" "apple"
출력은 2이어야 합니다.
(integer) 2
이제 my_set, my_set2, my_set3의 교집합을 계산해 보겠습니다. 다음 명령을 실행합니다.
SINTER my_set my_set2 my_set3
이 명령은 세 set 모두의 교집합을 반환합니다. 출력은 다음과 같습니다.
1) "banana"
"banana"만 세 set 모두에 존재합니다.
마지막으로, Redis CLI 를 종료합니다.
exit
SINTER 명령은 set 의 교집합을 클라이언트에 직접 반환합니다. 결과를 새로운 set 에 저장하려면, 나중에 배우게 될 SINTERSTORE 명령을 사용할 수 있습니다.
이 단계에서는 SINTER 명령을 사용하여 여러 Redis set 의 교집합을 계산하는 방법을 배웠습니다. 이는 여러 set 간의 공통 요소를 찾는 데 유용한 연산입니다.
SDIFF 로 차집합 계산하기
이 단계에서는 SDIFF 명령을 사용하여 Redis set 간의 차집합을 계산하는 방법을 배우게 됩니다. set 간의 차집합은 첫 번째 set 에는 존재하지만 후속 set 에는 없는 요소만 포함하는 새로운 set 입니다.
다음을 사용하여 Redis 서버에 연결합니다.
redis-cli
우리는 세 개의 set 을 가지고 있습니다: my_set ( "apple", "banana", "cherry" 포함), my_set2 ( "banana", "grape", "orange" 포함), 그리고 my_set3 ( "banana", "apple" 포함). SDIFF 명령을 사용하여 my_set과 my_set2 간의 차집합을 계산해 보겠습니다. 다음 명령을 실행합니다.
SDIFF my_set my_set2
이 명령은 my_set과 my_set2 간의 차집합을 반환합니다. 출력은 my_set에 존재하지만 my_set2에는 없는 모든 요소의 목록이 됩니다.
1) "apple"
2) "cherry"
"apple"과 "cherry"는 my_set에 있지만 my_set2에는 없습니다. "banana"는 두 set 모두에 있으므로 결과에 포함되지 않습니다.
이제 my_set과 my_set2 및 my_set3 모두 간의 차집합을 계산해 보겠습니다. 다음 명령을 실행합니다.
SDIFF my_set my_set2 my_set3
이 명령은 my_set과 my_set2 및 my_set3의 union 간의 차집합을 반환합니다. 출력은 다음과 같습니다.
1) "cherry"
"apple"은 my_set에 있지만 my_set3에도 있으므로 제외됩니다. "banana"는 my_set에 있지만 my_set2와 my_set3에도 있으므로 제외됩니다. "cherry"만 my_set에 독점적으로 존재합니다.
마지막으로, Redis CLI 를 종료합니다.
exit
SDIFF 명령은 set 의 차집합을 클라이언트에 직접 반환합니다. 결과를 새로운 set 에 저장하려면, SDIFFSTORE 명령을 사용할 수 있습니다 (이 랩에서는 다루지 않음).
이 단계에서는 SDIFF 명령을 사용하여 Redis set 간의 차집합을 계산하는 방법을 배웠습니다. 이는 특정 set 에 고유한 요소를 찾는 데 유용한 연산입니다.
SINTERSTORE 로 결과 저장하기
이 단계에서는 SINTERSTORE 명령을 사용하여 교집합 연산의 결과를 새로운 set 에 저장하는 방법을 배우게 됩니다. 이는 매번 다시 계산하지 않고 set 의 교집합에 대해 추가 작업을 수행하려는 경우 유용합니다.
다음을 사용하여 Redis 서버에 연결합니다.
redis-cli
우리는 세 개의 set 을 가지고 있습니다: my_set ( "apple", "banana", "cherry" 포함), my_set2 ( "banana", "grape", "orange" 포함), 그리고 my_set3 ( "banana", "apple" 포함). 이전 단계에서 우리는 이 set 들의 교집합을 계산했고 "banana"만 세 set 모두에 존재한다는 것을 발견했습니다.
이제 SINTERSTORE 명령을 사용하여 my_set, my_set2, 그리고 my_set3의 교집합 결과를 intersection_set이라는 새로운 set 에 저장해 보겠습니다. 다음 명령을 실행합니다.
SINTERSTORE intersection_set my_set my_set2 my_set3
이 명령은 my_set, my_set2, 그리고 my_set3의 교집합을 계산하고 결과를 intersection_set이라는 새로운 set 에 저장합니다. 출력은 결과 set 의 요소 수를 나타내는 정수입니다. 이 경우 교집합이 하나의 요소 ("banana") 만 포함하므로 출력은 1이어야 합니다.
(integer) 1
교집합이 올바르게 저장되었는지 확인하기 위해 SMEMBERS 명령을 사용하여 intersection_set의 멤버를 볼 수 있습니다. 다음 명령을 실행합니다.
SMEMBERS intersection_set
이 명령은 intersection_set set 의 모든 멤버 목록을 반환합니다. 출력은 다음과 같아야 합니다.
1) "banana"
이는 my_set, my_set2, 그리고 my_set3의 교집합이 intersection_set에 성공적으로 저장되었음을 확인합니다.
마지막으로, Redis CLI 를 종료합니다.
exit
이 단계에서는 SINTERSTORE 명령을 사용하여 교집합 연산의 결과를 새로운 set 에 저장하는 방법을 배웠습니다. 이를 통해 교집합의 결과를 다시 계산하지 않고 후속 연산에서 재사용할 수 있습니다.
요약
이 랩에서는 SADD 명령을 사용하여 Redis set 에 요소를 추가하는 방법을 배웠습니다. Redis set 은 고유한 문자열의 정렬되지 않은 컬렉션으로, 각 요소는 고유해야 하며 순서는 유지되지 않습니다.
SADD 명령은 중복을 무시하고 하나 이상의 멤버를 set 에 추가합니다. 이 랩에서는 set 에 요소를 추가하고, 추가된 요소의 수를 나타내는 반환 값을 관찰하고, SMEMBERS를 사용하여 set 의 내용을 확인하는 것을 보여주었습니다. SMEMBERS의 출력 순서는 set 의 정렬되지 않은 특성으로 인해 삽입 순서와 다를 수 있습니다. 또한 SUNION을 사용하여 set 의 합집합을 계산하고, SINTER를 사용하여 공통 요소를 찾고, SDIFF를 사용하여 set 간의 차이점을 식별하고, SINTERSTORE를 사용하여 set 연산의 결과를 나중에 사용할 수 있도록 저장하는 방법을 배웠습니다. 각 단계를 완료한 후에는 명령이 기록되도록 redis-cli를 종료하는 것을 잊지 마십시오.


