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에서 빼준다.