본문 바로가기

개발자를 위한 레디스

[개발자를 위한 레디스] 레디스의 자료 구조 - SET

 

1) 레디스의 SET이란?

- 레디스에서 set은 정렬되지 않은 문자열의 모음이다.

  하나의 set 자료 구조 내에서 아이템은 중복해서 저장되지 않으며

  교집합, 합집합, 차집합 등의 집합 연산과 관련한 커맨드를 제공하기 때문에

  객체 간의 관계를 계산하거나 유일한 원소를 구해야 할 경우에 사용될 수 있다. 

 

 

2) 레디스 SET 커맨드

 

- SADD 커맨드를 사용하면 set에 아이템을 저장할 수 있으며,

  한 번에 여러 개의 아이템을 저장하는 것도 가능하다. 

 

> SADD myset A
(integer) 1

> SADD myset A A A C B D D E F F F F G
(integer) 6

> SMEMBERS myset
1) "D"
2) "F"
3) "C"
4) "G"
5) "B"
6) "A"
7) "E"

 

- SADD 커맨드는 저장되는 실제 아이템 수를 반환한다.

  SMEMBERS 커맨드는 set 자료 구조에 저장된 전체 아이템을 출력하는데,

  이 때, 데이터를 저장한 순서와 관계없이 랜덤한 순서로 데이터가 출력되는 것을 확인할 수 있다. 

 

- SREM 커맨드를 이용하면 set에서 원하는 데이터를 삭제할 수 있으며,

  SPOP 커맨드는 set 내부의 아이템 중 랜덤으로 하나의 아이템을 반환하는 동시에

  set에서 그 아이템을 삭제한다. 

 

> SREM myset B
(integer) 1

> SPOP myset
"E"

 

- set에서 합집합은 SUNION, 교집합은 SINTER, 차집합은 SDIFF 커맨드로 수행할 수 있다. 

> SINTER set:111 set:222
1) "D"
2) "E"

> SUNION set:111 set:222
1) "D"
2) "H"
3) "F"
4) "C"
5) "G"
6) "B"
7) "A"
8) "E"

> SDIFF set:111 set:222
1) "B"
2) "C"
3) "A"