티스토리 뷰
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" |