티스토리 뷰

Sets 관련 명령어 예제

- SADD

설명키에 저장된 집합에 지정된 멤버를 추가합니다. 이 집합의 구성원 인 경우 지정된 멤버는 무시됩니다. key가 없으면 지정된 멤버를 추가하기 전에 새 세트가 만들어집니다.
시간복잡도 : O(1)

redis-cli > SADD key member [member ...]

redis > SADD test hello world 

 (integer) 1 

 redis > SADD test world 

 (integer) 0 

 redis > SMEMBERS test 

 1) "hello" 
 2) "world"

 

- SMEMBERS

설명 : 키에 저장된 설정 값의 모든 멤버를 반환합니다.
시간복잡도 : O(1)

redis-cli > SMEMBERS key

 redis > SMEMBERS test
 1) "hello"
 2) "world"

 

 

- SREM

설명키에 저장된 집합에서 지정된 멤버를 제거합니다. 해당 집합의 구성원이 아닌 멤버는 무시됩니다. key가 없으면 빈 세트로 처리되고 명령은 0을 리턴 합니다. key에 저장된 값이 집합이 아닌 경우 오류가 반환됩니다.
시간복잡도 : O(1)

redis-cli > SREM key member [member ...]

 redis > SREM test hello
 (integer) 1
 redis > SREM test hello
 (integer) 0
 redis > SMEMBERS test
 1) "world"

 

 

- SCARD

설명 : 키에 저장된 개수를 반환합니다.
시간복잡도 : O(1)

redis-cli > SCARD key

 redis > SADD test apple
 (integer) 1
 redis > SADD test banana
 (integer) 1
 redis > SCARD test
 (integer) 2

 

- SDIFF

설명최초의 키 값(key1)을 기준으로 비교되는 키 값(key ...)의 차집합을 리턴합니다.
시간복잡도 : O(N)

redis-cli > SDIFF key [key ...]

 redis > SADD test1 a b c
 (integer) 3
 redis > SADD test2 c d e
 (integer) 3
 redis > SDIFF test1 test2
 1) "a"
 2) "b"

 

 

- SDIFFSTORE

설명SDIFF 명령어와 동일하지만 키 값을 반환하는 대신 새로운 키 값에 저장한다.
시간복잡도 : O(N)

redis-cli > SDIFFSTORE destination key [key ...]

 redis > SADD test1 a b c
 (integer) 3
 redis > SADD test2 c d e
 (integer) 3
 redis > SDIFFSTORE test3 test1 test2
 (integer) 2
 redis > smembers test3
 1) "a"
 2) "b"

 

- SINTER

설명 : 지정된 키 값의 교집합을 리턴합니다.
시간복잡도 : O(N*M)

redis-cli > SINTER key [key ...]

 redis > SADD test1 a b c
 (integer) 3
 redis > SADD test2 c d e
 (integer) 3
 redis > SADD test3 c f g
 (integer) 3
 redis > SINTER test1 test2 test3
 1) "c"

 

 

- SINTERSTORE

설명 SINTER 명령어와 동일하지만 키 값의 교집합을 새로운 키에 저장합니다.
시간복잡도 : O(N*M)

redis-cli > SINTERSTORE destination key [key ...]

 

 redis > SADD test1 a b c
 (integer) 3
 redis > SADD test2 c d e
 (integer) 3
 redis > SADD test3 c f g
 (integer) 3
 redis > SINTERSTORE test4 test1 test2 test3
 (integer) 3
 redis > SMEMBERS test4
 1) "c"

 

 

- SISMEMBER

설명 : member가 key에 저장된 집합의 구성원인지 여부를 반환. 1이면 존재, 0이면 존재하지 않음
시간복잡도 : O(1)

redis-cli > SISMEMBER key member

 redis > SADD test1 a b c
 (integer) 3
 redis > SISMEMBER test1 a
 (integer) 1
 redis > SISMEMBER test1 b
 (integer) 1
 redis > SISMEMBER test1 d
 (integer) 0

 

 

- SMOVE

설명 : source key 에서 destination key 로 멤버가 이동. 즉 source 에서는 삭제가 되고, destination에 추가
시간복잡도 : O(1)

redis-cli > SMOVE source destination member

 redis > SADD test1 a b c
 (integer) 3
 redis > SADD test2 d e f
 (integer) 3
 redis > SMOVE test1 test2 "c"
 (integer) 1
 redis > SMEMBERS test1
 1) "a"
 2) "b"

 redis > SMEMBERS test2
 1) "c"
 2) "d"
 3) "e"
 4) "f"

 

 

- SPOP

설명 : 키에 설정된 값 저장소에서 하나 이상의 임의의 요소를 제거하고 반환합니다.
시간복잡도 : O(1)

redis-cli > SPOP key [count]

 redis > SADD test1 a b c d e f g h
 (integer) 8
 redis > SPOP test1 4
 1) "a"
 2) "d"
 3) "f"
 4) "h"

 redis > SMEMBERS test1
 1) "b"
 2) "c"
 3) "e"
 4) "g"

 

 

- SUNION

설명 : 지정된 모든 세트의 결합으로 부터 생성된 세트의 합집합을 반환합니다.
시간복잡도 : O(N)

redis-cli > SUNION key [key ...]

 redis > SADD test1 a b c
 (integer) 3
 redis > SADD test2 c d e
 (integer) 3
 redis > SUNION test1 test2
 1) "c"
 2) "a"
 3) "d"
 4) "b"
 5) "e"

 

 

- SUNIONSTORE

설명 : SUNION 명령어와 동일하지만 생성된 세트의 합집합을 저장합니다.
시간복잡도 : O(N)

redis-cli > SUNION destination key [key ...]

 redis > SADD test1 a b c
 (integer) 3
 redis > SADD test2 c d e
 (integer) 3
 redis > SUNIONSTORE test3 test1 test2
 (integer) 3
 redis > SMEMBERS test3
 1) "d"
 2) "b"
 3) "c"
 4) "a"
 5) "e"