key 와 value 에 작성 할 텍스트는
'
또는 "
로 감싸주거나,
'
또는 "
또는 공백문자
가 없는 한 단어일 경우 그냥 작성해줘도 됨
SET key value [NX | XX] [GET] [EX seconds | PX milliseconds]
NX
: 해당 키가 없는
경우 생성. 키가 있다면 nil 반환XX
: 해당 키가 있는
경우 덮어씀. 키가 없다면 nil 반환 key 가 "color" 이고,
value 가 "red" 인 키-값 데이터 생성.
SET color red
key 가 "color" 이고,
value 가 "red" 인 키-값 데이터를 생성하는데,
color 가 nil일 경우
에만 생성
(= color에 저장된 값이 없는 경우 == color를 최초 생성하는 경우 == color가 nil임 )
SET color red NX
set color red NX 명령어는 무시되고
이후 get color 명령 호출 결과로 기존의 값을 반환
key 가 "color" 이고,
value 가 "red" 인 키-값 데이터를 생성하는데,
color 값이 존재하는 경우
에만 생성
(= color에 저장된 값이 있음 == color가 nil이 아님 )
SET color red XX
set color red XX 명령어는 무시 됨
먼저 저장되어있던 green이
set color red XX 명령어 실행 후 red로 덮어씌워진 것을 확인
key 가 "color" 이고,
value 가 "red" 인 키-값 데이터를 생성하는데,
👉 기존에 저장되어있던 값을 반환하고 새로운 값 저장
(= color 에 저장된 값이 있음 == color가 nil이 아님 )
👉 nil 반환하고 새로운 값 저장
ex 4-1) 새로운 키 생성 + GET
SET color red GET
ex 4-2) 존재하는 키 + GET
SET color red
SET color green GET
key 가 "color" 이고,
value 가 "red" 인 키-값 데이터를 생성하는데,
color 키가 살아있는 시간을 초
단위로 지정
-- color 키 생성 및 5초 후 삭제
SET color red EX 5
타이머 켜놓고 1초에 한번씩 get color 호출로 확인 🙈
key 가 "color" 이고,
value 가 "red" 인 키-값 데이터를 생성하는데,
color 키가 살아있는 시간을 밀리초
단위로 지정
-- color 키 생성 및 0.5초 후 삭제
SET color red PX 500
타이머로 테스트하다 손이 느려서 포착할 수가 없었기 때문에 스프링 부트를 사용 😔
[NX | XX] 와 [GET] 그리고 [EX | PX] 를 섞어서 사용할 수 있다.
SET color value XX GET EX 10
color 키가 이미 존재한다면,
값이 value 인 color 키를 생성하는데,
기존의 값을 반환하고 value로 덮어씌운 뒤, 10초 뒤에 color 폭파(제거)
위 문장을 실행하기 이전에 color 키가 없는 상태였다면 위 문장은 실행에 실패하게 된다.
( color가 생성되지 않고 nil 반환 )
GET key
값이 있는 key 를 GET 명령어로 호출하면 해당 값을 반환하고
값이 없는 key 를 GET 명령어로 호출하면 nil 을 반환한다.
multi set
1개 이상의 SET 명령을 한줄로 선언하여 실행하는 것이다.
MSET key1 val1 [ key2 val2 key3 val3 ... keyN valN ]
👆 EX 1 옵션이 key-value 로 인식 된 모습
👆 NX 옵션은 value가 없는 key로 인식되어 에러 메세지가 출력되었다.
multi get
1개 이상의 GET 명령을 한번에 호출
MGET key1 [ key2 key3 ... keyN ]
다수의 key를 조회할 수 있다.
KEYS 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 검색 |
다수의 key를 삭제할 수 있다.
DEL key [key ...]