Today
-
Yesterday
-
Total
-
  • Redis : SET 자료구조 :: SADD , SMEMBERS , SUNION , SINTER , SDIFF , SUNIONSTORE , SINTERSTORE , SDIFFSOTRE , SISMEMBER , SMISMEMBER , SCARD , SREM , SSCAN
    DB/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으로 출력되었다..!!!

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

Designed by Tistory / Custom by 얼거스