Database/Redis
String 타입 명령어
최-코드
2024. 9. 19. 21:24
set <key> <value>
- <key>에 <value>를 할당한다.
- <value> 뒤에 옵션을 붙일 수 있다. 옵션 순서로는 [EX|PX|EXAT|PXAT|KEEPTTL], [NX|XX], GET 순이다.
- set <key> <value> get의 경우 <key>의 이전 <value>값을 출력해준다.
- set <key> <value> xx의 경우 <key>가 이미 존재했을 때 <value> 값을 할당해준다. 만약 <key>가 없었다면 null을 출력한다.
- set <key> <value> nx의 경우 xx일 때와 정반대로 동작한다.
- set <key> <value> ex 2의 경우 2초 후에 이 키-값 데이터를 삭제한다. px의 경우 밀리초로 설정한다.
mset <key> <value> <key> <value> ... : 여러 키-값 데이터를 한 번에 넣을 수 있는 명령어이다. 이 명령어엔 옵션을 붙일 수 없다.
msetnx <key> <value> ... : nx 옵션을 한 번에 실행할 수 있는 명령어로 어느 키 하나라도 이미 있으면 모든 키-값 데이터가 저장되지 않는다.
get <key> : <key>에 해당하는 값을 출력한다.
mget <key> <key> ... : 여러 개의 키값을 출력해준다.
getrange <key> <first-index> <last-index> : 제로 베이스 인덱스로, first-index부터 last-index 포함해서 string 값을 가져온다.
숫자로 된 String value 추가 명령어
추가 명령어가 있는 이유
- set과 get 명령어를 통해서 진행할 수 있지만, 이렇게 따로 명령어가 있는 이유는 애플리케이션에서 redis에 최소 2번씩 접근해줘야 하기 때문이다.
- 위에보다 더 중요한 점은 set과 get으로 각각 접근할 시 만약 API 서버에서 요청을 한 번에 보냈을 때 get과 set이 한 번에 처리되지 않고 각각 요청에서 get만 먼저 실행되는 경우 결국 값은 하나만 적용된다. 즉, 스레드 안전하지 않게 된다.
INCR <key> : <value>의 값을 1 올려준다.
DECR <key> : <value>의 값을 1 내려준다.
INCRBY <key> <num> : num만큼 해당 키의 value에서 더해준다.
DECRBY <key> <num> : num만큼 해당 키의 value에서 빼준다.
INCRBYFLOAT <key> <float-num> : float-num만큼 value에서 더해준다.
DECRBYFLOAT <key> <float-num> : float-num만큼 value에서 빼준다.