Redis : 기본 자료구조 :: SET , GET , MSET , MGET , DEL , KEYS

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

Redis

목록 보기
1/12

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



DEL

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

형태

DEL key [key ...]

key 1개 지움


key 여러개 지움


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

profile
Hello velog! 

0개의 댓글

관련 채용 정보