-
Redis : SET 자료구조 :: SADD , SMEMBERS , SUNION , SINTER , SDIFF , SUNIONSTORE , SINTERSTORE , SDIFFSOTRE , SISMEMBER , SMISMEMBER , SCARD , SREM , SSCANDB/Redis 2023. 12. 13. 00:01
중복 값 없이 데이터 리스트를 관리해주는 자료 구조이다.
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으로 출력되었다..!!!
뭔가 이상하니 왠만하면 사용하지 않는 방향으로 🙈
'DB > Redis' 카테고리의 다른 글
링크 ) redis repository 사용하기 (0) 2023.12.13 Redis-cli : 한글 출력 인코딩 깨질 때 (0) 2023.12.13 redis : windows에 설치 (0) 2023.12.12 Redis : HASH 자료구조 :: HSET , HGET , HGETALL , HEXISTS , HDEL , HINCRBY , HINCRBYFLOAT , HSTRLEN , HKEYS , HVALS (0) 2023.12.12 Redis : 기본 자료구조 :: SET , GET , MSET , MGET , DEL , KEYS (0) 2023.12.12