Today
-
Yesterday
-
Total
-
  • Redis : 기본 자료구조 :: SET , GET , MSET , MGET , DEL , KEYS
    DB/Redis 2023. 12. 12. 00:01

    https://redis.io/commands/


    key 와 value 에 작성 할 텍스트는

    ' 또는 " 로 감싸주거나,

    ' 또는 " 또는 공백문자가 없는 한 단어일 경우 그냥 작성해줘도 됨


    SET

    형태

    SET key value [NX | XX] [GET] [EX seconds | PX milliseconds]
    
    • [NX | NN] : NX 또는 NN 중 1개 이하 선택적 사용
      • NX : 해당 키가 없는 경우 생성. 키가 있다면 nil 반환
      • XX : 해당 키가 있는 경우 덮어씀. 키가 없다면 nil 반환

    • [GET] : GET 선택적 사용
      • 먼저 저장되어있던 값 반환 후 신규 값 저장 키가 없는 상태였다면 nil 반환

    • [EX | PX] : EX 또는 PX 중 1개 이하 선택적 사용
      • EX : 유효 시간을 초 단위로 선언
      • PX : 유효 시간을 밀리초 단위로 선언

    EX 1 ) 옵션 없는 기본형

    key 가 "color" 이고, value 가 "red" 인 키-값 데이터 생성.

    SET color red
    


    EX 2 ) NX 옵션

    key 가 "color" 이고, value 가 "red" 인 키-값 데이터를 생성하는데,

    color 가 nil일 경우에만 생성 (= color에 저장된 값이 없는 경우 == color를 최초 생성하는 경우 == color가 nil임 )

    SET color red NX
    

    ex 2-1 ) color 가 nil 인 상태에서 명령어 실행


    ex 2-2 ) color 가 nil이 아닌 상태에서 명령어 실행

    set color red NX 명령어는 무시되고

    이후 get color 명령 호출 결과로 기존의 값을 반환



    EX 3 ) XX 옵션

    key 가 "color" 이고, value 가 "red" 인 키-값 데이터를 생성하는데,

    color 값이 존재하는 경우에만 생성 (= color에 저장된 값이 있음 == color가 nil이 아님 )

    SET color red XX
    

    ex 3-1 ) color 가 nil 인 상태에서 명령어 실행

    set color red XX 명령어는 무시 됨


    ex 3-2 ) color 가 nil이 아닌 상태에서 명령어 실행

    먼저 저장되어있던 green이 set color red XX 명령어 실행 후 red로 덮어씌워진 것을 확인



    EX 4 ) GET 옵션

    key 가 "color" 이고, value 가 "red" 인 키-값 데이터를 생성하는데,

    color 값이 존재하고 있음

    👉 기존에 저장되어있던 값을 반환하고 새로운 값 저장 (= color 에 저장된 값이 있음 == color가 nil이 아님 )

    color 값이 존재하지 않음

    👉 nil 반환하고 새로운 값 저장


    ex 4-1) 새로운 키 생성 + GET

    SET color red GET
    


    ex 4-2) 존재하는 키 + GET

    SET color red 
    SET color green GET
    


    EX 5 ) EX 옵션

    key 가 "color" 이고, value 가 "red" 인 키-값 데이터를 생성하는데,

    color 키가 살아있는 시간을 단위로 지정

    -- color 키 생성 및 5초 후 삭제
    SET color red EX 5
    

    타이머 켜놓고 1초에 한번씩 get color 호출로 확인 🙈


    EX 6 ) PX 옵션

    key 가 "color" 이고, value 가 "red" 인 키-값 데이터를 생성하는데,

    color 키가 살아있는 시간을 밀리초 단위로 지정

    -- color 키 생성 및 0.5초 후 삭제
    SET color red PX 500
    

    타이머로 테스트하다 손이 느려서 포착할 수가 없었기 때문에 스프링 부트를 사용 😔


    EX 7 ) 옵션 MIX

    [NX | XX] 와 [GET] 그리고 [EX | PX] 를 섞어서 사용할 수 있다.

    SET color value XX GET EX 10
    

    color 키가 이미 존재한다면, 값이 value 인 color 키를 생성하는데, 기존의 값을 반환하고 value로 덮어씌운 뒤, 10초 뒤에 color 폭파(제거)

    위 문장을 실행하기 이전에 color 키가 없는 상태였다면 위 문장은 실행에 실패하게 된다. ( color가 생성되지 않고 nil 반환 )

    기존에 값이 있는 키에 대한 테스트 결과


    기존에 값이 없었던 키에 대한 테스트 결과



    GET

    형태

    GET key 
    

    값이 있는 key 를 GET 명령어로 호출하면 해당 값을 반환하고

    값이 없는 key 를 GET 명령어로 호출하면 nil 을 반환한다.



    MSET

    multi set

    1개 이상의 SET 명령을 한줄로 선언하여 실행하는 것이다.

    형태

    MSET key1 val1 [ key2 val2 key3 val3 ...  keyN valN ]
    


    SET 에서 사용되는 옵션들은 적용 되지 않는다.

    👆 EX 1 옵션이 key-value 로 인식 된 모습

    👆 NX 옵션은 value가 없는 key로 인식되어 에러 메세지가 출력되었다.



    MGET

    multi get

    1개 이상의 GET 명령을 한번에 호출

    형태

    MGET key1 [ key2 key3 ...  keyN ]
    



    KEYS

    다수의 key를 조회할 수 있다.

    형태

    KEYS pattern
    

    pattern

    ex 결과
    h?llo h와 llo 사이에 문자 1개 들어가 있는 모든 key 검색 matches hello, hallo and hxllo
    h*llo h와 llo 사이에 아무 문자열이 들어가 있는 모든 key 검색 matches hllo and heeeello
    h[ae]llo h와 llo 사이에 a 또는 e가 들어가 있는 모든 key 검색 matches hello and hallo, but not hillo
    h[^e]llo h와 llo 사이에 e가 아닌 문자가 들어가 있는 key 검색 matches hallo, hbllo, ... but not hello
    h[a-d]llo h와 llo 사이에 a 또는 b 또는 c 또는 d가 들어가있는 key 검색 matches hallo and hbllo
    * 모든 key 검색



    DEL

    다수의 key를 삭제할 수 있다.

    형태

    DEL key [key ...]
    

    key 1개 지움


    key 여러개 지움


    keys 에서 먹혔던 pattern 은 인식 안됨

Designed by Tistory / Custom by 얼거스