Redis : SET 자료구조 :: SADD , SMEMBERS , SUNION , SINTER , SDIFF , SUNIONSTORE , SINTERSTORE , SDIFFSOTRE , SISMEMBER , SMISMEMBER , SCARD , SREM , SSCAN

김아무개·2023년 8월 10일
0

Redis

목록 보기
5/12

중복 값 없이 데이터 리스트를 관리해주는 자료 구조이다.


SADD

SET 자료구조를 가지는 key 키에 데이터( member1 , member2 ... ) 추가

SADD key member [member ...]

ex 1 . color 키에 중복 없는 색상 값 8개 입력

SADD color red green blue yellow black white orange sky


ex 2 . color 키에 중복 없는 색상 값 1개 입력 추가

SADD color mix-color


ex 3 . color 키에 중복 색상 값 1개 입력 추가

SADD color red

값 추가에 성공하면 추가된 수량이 반환된다.

중복 값을 입력하면 추가되지 않기 때문에 0 반환



SMEMBERS

SET 자료구조를 가진 key의 데이터 조회

SMEMBERS key

ex 1. 존재하는 키 조회

SMEMBERS color


ex 2. 존재하지 않는 키 조회

SMEMBERS coloooor



SUNION

합집합 표현하기

SUNION key1 key2 key3

test를 위해 SET 자료구조를 가지는 키 colors:1 , colors:2 , colors:3 생성

SADD colors:1 red blue orange
SADD colors:2 blue green purple
SADD colors:3 blue red purple


방금 생성한 키 3개를 SUNION 명령어를 사용하여 합집합을 만든다.

SUNION colors:1 colors:2 colors:3

3개의 키에서 중복을 제외한 값들이 합쳐진 것을 확인할 수 있다.



SINTER

교집합 표현하기

SINTER key1 key2 key3

SET 자료구조를 가지는 키 color:1, color:2, color:3 에서 공통으로 갖는 blue 만 출력된 것을 확인할 수 있다.



SDIFF

차집합 표현하기

SDIFF key1 key2 key3

test 1 : colors:1 - colors:2 - colors:3

SDIFF colors:1 colors:2 colors:3

제일 처음으로 명시한 colors:1 키의 값들에서
colors:2 가 가진 값들과 colors:3 이 가진 값들을 제거하면 orange 만 출력된다.


test 2 : colors:2 - colors:1 - colors:3

SDIFF colors:1 colors:2 colors:3

제일 처음으로 명시한 colors:2 키의 값들에서
colors:1 가 가진 값들과 colors:3 이 가진 값들을 제거하면 green 만 출력된다.



SUNIONSTORE , SINTERSTORE , SDIFFSTORE

SUNIONSTORE :  UNION 결과를 새로운 SET 키에 저장
SINTERSTORE   :  INTER 결과를 새로운 SET 키에 저장
SDIFFSTORE   :  DIFF 결과를 새로운 SET 키에 저장

[SUNIONSTORE | SINTERSTORE | SDIFFSTORE] destination_key key1 [key2 key3 ...]

SINTERSTORE 사용해서 test !

SINTERSTORE colors:result colors:2 colors:1 colors:3



SISMEMBER

SISMEMBER key member

member가 key에 저장되어있는 값인지 확인


test 1


test 2



SMISMEMBER

SMISMEMBER key member [member2 member3 ... ]

나열한 member member2 member3 ... 들이 각각 key에 저장되어있는 값인지 확인


test

black , purple 은 없는 값이고
red , orange 는 존재하는 값이다.



SCARD

set cardinality

key에 저장된 member 수량 확인

SCARD key

test 1


test 2



SREM

set remove

key에 저장된 member 제거

SREM key member

test 1



SSCAN

key 의 cursor 번째 데이터 이후로 count 갯수 만큼 랜덤으로 반환

SSCAN key cursor [MATCH pattern] [COUNT count]

test 1

오..? result가 최대 1개만 나와야 하는데 3개가 나왔다 ;

test 2

result가 최대 2개만 나와야 하는데 3개가 나왔다 ;;

COUNT가 기능을 안하는건가..!!

test 3

cursor가 1이 나와야 하고, results 는 3개 중에 cursor가 1이니 2개 나오는게 맞다.
하지만 cursor가 0으로 출력되었다..!!!

뭔가 이상하니 왠만하면 사용하지 않는 방향으로 🙈

profile
Hello velog! 

0개의 댓글

관련 채용 정보