set
타입은 특정 key에 대해 중복되지 않고, 순서가 보장되지 않는 값의 집합을 정의합니다. 내부적으로 hash table을 사용하므로 push/pop이 아닌 add/remove 패턴의 명령어를 사용합니다.
sadd [key] [item ...]
key의 set에 item들을 추가합니다. 성공적으로 추가된 item의 수를 반환합니다.
127.0.0.1:6379> sadd a 1 2 3
(integer) 3
127.0.0.1:6379> sadd a 1 3 4
(integer) 1
srem [key] [item ...]
key의 set에 존재하는 item들을 제거합니다. 성공적으로 제거된 item의 수를 반환합니다.
127.0.0.1:6379> srem a 1 2 3
(integer) 3
127.0.0.1:6379> srem a 1 2 3 4
(integer) 1
sismember [key] [item]
key의 set에 item이 존재하는지 체크합니다. item이 존재하는 경우 1을, 존재하지 않는 경우 0을 반환합니다. Python의 'in' 키워드와 유사합니다.
127.0.0.1:6379> sadd a 1 2 3
(integer) 3
127.0.0.1:6379> sismember a 1
(integer) 1
127.0.0.1:6379> sismember a 3
(integer) 1
127.0.0.1:6379> sismember a 4
(integer) 0
scard [key]
key의 set에 존재하는 item의 갯수를 반환합니다.
127.0.0.1:6379> sadd a 1 2 3
(integer) 3
127.0.0.1:6379> scard a
(integer) 3
smembers [key]
key의 set에 존재하는 모든 item들을 반환합니다.
127.0.0.1:6379> sadd a 1 2 3
(integer) 3
127.0.0.1:6379> smembers a
1) "1"
2) "2"
3) "3"
그리고 아래의 명령들을 사용할 수 있습니다.
- srandmember [key] [count=1] : set에 존재하는 item들을 최대 count개 랜덤 선택하여 반환합니다. count에 음수를 전달하더라도 절댓값으로 처리됩니다.
- spop [key] : set에 존재하는 item을 랜덤하게 선택해 반환하며 제거합니다.
- smove [source-key] [dest-key] [item] : source에 item이 존재한다면, 해당 item을 source에서 제거함과 동시에 dest로 이동시키며, 이동에 성공한 경우 해당 item을 반환합니다.
- sdiff [key] [compare-key ...] : compare-key들의 set에 모두 존재하지 않는 item들만 반환합니다. a에 {1, 2, 3}, b에 {1, 2}, c에 {2}가 들어 있는 상태에서
sdiff a b c
의 결과는 {3}입니다. - sinter [key] [compare-key ...] : sdiff와 반대로, compare-key들의 set에 모두 존재하는 item들만 반환합니다. a에 {1, 2, 3}, b에 {1, 2}, c에 {2}가 들어 있는 상태에서
sdiff a b c
의 결과는 {2}입니다.
'데이터베이스 > Redis' 카테고리의 다른 글
[Redis] String(기본 조작) (0) | 2018.09.06 |
---|---|
[Redis] List의 고급 커맨드들 (0) | 2018.09.06 |
[Redis] List (0) | 2018.09.06 |
[Redis] select (0) | 2018.09.06 |
[Redis] Publish/Subscribe (0) | 2018.09.06 |