redis Sets

2021. 4. 11. 02:52 NoSQL/redis

개요

Sets는 key와 value가 일 대 다 관계 입니다.

Sets에서는 집합이라는 의미에서 value를 member라 부릅니다.

key 집합 내에서 Value 는 중복되지 않습니다 (unique)

 

명령어 요약

저장 :SADD

SADD : sadd key member 예) sadd userset "홍길동1" "홍길동2"  , 결과 2(입력된 member수) 가 출력 됩니다.

 

조회 :SMEMBERS, SCARD, SRANDMEMBER, SSCAN

SMEMBERS :  smembers key 예) smembers userset , key의 member를 조회, 조회 순서를 지정 할 수 없습니다.

SCARD : scard key 예) scard userset, key의 member 수 조회 합니다.

SRANDMEMBER : srandmember key [count] 예) srandmember userset 2, key에서 무작위로 member를 조회. count가 없으면 1개 조회 합니다.

SSCAN : SSCAN key cursor [MATCH pattern] [COUNT count] 예) member를 count 만큼 조회 합니다.

members는 모든 member가 많은 경우 부하가 되서 대안으로 나왔습니다.

 

확인 :SISMEMBER

SISMEMBER : sismember key member  예) sismember userset "홍길동1" , member가 있으면1, 없으면 0 리턴 됩니다.

 

이동 :SMOVE

SMOVE : smove source_key destination_key member 예) smove userset userset2 "홍길동1", 원자적으로 작동, 성공시1, 실패시0 리턴 됩니다.

sourcekey를 destinationkey로 이동 (삭제 & 삽입) destinationkey가 존재 하자 않으면 생성 후 삽입 됩니다.

destinationkey에 이동할 member가 존재 해도 sourcekey에서 삭제가 이루어지며 결과는 1 리턴 됩니다.

 

삭제 :SREM

SREM : srem key member 예) srem userset "홍길동1" "홍길동2" , key에서 member를 삭제, 삭제된 member수를 리턴 됩니다.

 

꺼내옴 :SPOP

SPOP : spop key [count] 예) spep userset , key에서 무직위로 member를 조회 합니다. (삭제 & 조회)

주의) Redis version 3.0.0 이상 지원 합니다.

 

집합연산 :SUNION, SINTER, SDIFF, SUNIONSTORE, SINTERSTORE, SDIFFSTORE

SUNION : SUNION key [key ...] 예) sunion userset userset2, key들의 모든 member를 합집합으로 조회, key 개수는 제한이 없습니다.   

SINTER : SINTER key [key ...] 예) sinter userset userset2, key들의 모든 member를 교집합으로 조회, key 개수는 제한이 없습니다.   

SDIFF : SDIFF key [key ...] 예) sdiff userset userset2 , key1에서 key2.. 를 제거한 차집한 조회, key 개수는 제한이 없습니다.   

SUNIONSTORE : SUNIONSTORE destination_key source_key [source_key ...]  source keys의 합집합을 destinationKey에 생성 삽입합니다.

예) sunionstore newset userset userset2, 결과는 newset의 member 수를 리턴 합니다.

destinationkey 과 sourcekey가 같으면 기존 key 값은 없어지고 합집합이 입력된 key가 생성됩니다.

SINTERSTORE : SINTERSTORE destination_key source_key [source_key ...]   source keys의 교집합을 destinationKey에 생성 삽입 됩니다.

예) sinterstore newset userset userset2, 결과는 newset의 member 수를 리턴 합니다.

destinationkey 의 이미 존재한다면 기존 key는 지워지도 새로운 결과 set이 생성됩니다.

SDIFFSTORE : SDIFFSTORE destination_key source_key [source_key ...]   source keys의 차집합을 destinationKey에 생성 삽입 합니다.

(SDIFF 참고)

예) sdiffstore newset userset userset2, 결과는 newset의 member 수를 리턴 합니다.

destinationkey 의 이미 존재한다면 기존 key는 지워지도 새로운 결과 set이 생성됩니다.

 

출처 : code-factory.tistory.com/3?category=724511

'NoSQL > redis' 카테고리의 다른 글

Redis cluster  (0) 2021.04.11
redis Strings  (0) 2021.04.11
redis Lists  (0) 2021.04.11
redis Sorted Sets  (0) 2021.04.11
redis Hashes  (0) 2021.04.11
[Redis, 레디스] 레디스 소개 및 아키텍처, 주의할 점(Redis Overview, Redis Architecture, Tool Tip)  (0) 2021.03.29
redis desktop manager for windows  (1) 2020.08.14
Redis GUI tool 무료 - P3X Redis UI  (0) 2020.08.14