본문 바로가기
SQL/Redis

Redis Set 타입 특징 및 자주 쓰는 명령어 알아보기

by 흑시바 2024. 4. 7.

SET

Redis의 Set은 고유한 값들을 저장하는 데 사용되는 데이터 구조로, 중복된 값을 허용하지 않는다. 이 데이터 타입은 다양한 용도로 활용되며, 여러 유용한 기능을 제공한다.

 

Set은 다음과 같은 특징을 갖는다.

고유한 값 저장

Set은 중복된 값을 허용하지 않으며, 각 값은 오직 한 번만 저장된다. 이는 집합 형태의 데이터를 효과적으로 표현하고 관리할 수 있도록 한다.

집합 연산 지원

Redis의 Set 타입은 여러 집합 연산을 지원한다. 교집합, 합집합, 차집합 등의 연산을 통해 집합 간의 관계를 쉽게 파악하고 다룰 수 있다.

순서 없음

Set은 순서가 없는 데이터 구조이다. 따라서 값을 저장한 순서를 보장하지 않으며, 순서에 의한 접근이 불가능하다.

명령어 (Command)

SADD

설명: 집합에 하나 이상의 멤버를 추가한다.

 

사용 예제:

> SADD shibaset white black
(integer) 2

SMEMBERS

설명: 집합의 모든 멤버를 반환한다.

 

사용 예제:

> SMEMBERS shibaset
1) "white"
2) "black"

SISMEMBER

설명: 지정된 값이 집합에 있는지 확인한다.


사용 예제:

> SISMEMBER shibaset white
(integer) 1
> SISMEMBER shibaset red
(integer) 0

SINTER

설명: 여러 집합 간의 교집합을 반환한다.


사용 예제:

> SADD shibaset1 white black
(integer) 2
> SADD shibaset2 black red
(integer) 2
> SINTER shibaset1 shibaset2
1) "black"

SUNION

설명: 여러 집합 간의 합집합을 반환한다.


사용 예제:

> SUNION shibaset1 shibaset2
1) "white"
2) "black"
3) "red"

SDIFF

설명: 여러 집합 간의 차집합을 반환한다.


사용 예제:

> SDIFF shibaset1 shibaset2
1) "white"

SREM

설명: 하나 이상의 요소를 제거한다.


사용 예제:

> SREM shibaset1 white
(integer) 1
> SREM shibaset2 white
(integer) 0

SCARD

설명: Set 요소 수를 반환한다.


사용 예제:

> SADD shibaset "white"
> SADD shibaset "black"
> SCARD shibaset
(integer) 2

활용 예시 (Example)

세션 관리

웹 애플리케이션에서 로그인한 사용자들의 세션을 관리할 때, 각 사용자를 고유한 세션 ID로 저장하는데 Set을 사용할 수 있다.

 

SADD sessions "session_id_1"
SADD sessions "session_id_2"

태그 관리

블로그나 포럼과 같은 서비스에서 게시물에 태그를 관리할 때, 각 게시물에 사용된 태그를 Set으로 저장하여 중복을 방지할 수 있다.

 

SADD post_tags:1 "redis" "database" "nosql"
SADD post_tags:2 "java" "programming" "development"

🔭 REFERENCE

https://redis.io/commands/

https://redis.io/docs/data-types/strings/

댓글