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

+ Recent posts