https://github.com/microsoftarchive/redis/releases
여기로 가서 Redis-x64-3.0.504.msi
를 설치하면 된다.
설치한 폴더로 이동해서 redis-cli
를 실행해보자.
ping
이라는 명령어를 통해 pong
이라는 응답을 받으면 Redis가 잘 실행되고 있는 것이다.
Redis는 키와 값으로 데이터를 저장할 수 있다.
SET
명령어를 통해 키(name
)에 값(jang
)을 값을 저장해보자.
명령어는 대소문자를 구분하지 않아도 된다.
GET
명령어를 통해 저장한 키(name
)로 값을 조회해보자.
이번에는 age에 숫자를 저장하고 조회해보겠다.
여기서 알 수 있는 것은 25같은 숫자도 기본적으로 Redis는 문자열 타입으로 값을 저장한다는 것이다.
DEL
명령어를 통해 저장된 키(age
)를 제거해보자.
age를 제거한 후 다시 조회하면 null이 반환되는 것을 볼 수 있다.
EXISTS
명령어를 사용하여 해당 KEY가 DB내에 존재하는지 확인할 수 있다.
앞서 age를 제거했기 때문에 EXISTS age
명령어의 결과로 false를 의미하는 0이 반환되는 것을 확인할 수 있다.
KEYS
명령어를 이용해서 패턴이 일치하는 모든 키들도 찾을 수 있다.
FLUSHALL
명령어를 이용해서 Key를 전부 지울 수도 있다.
캐싱 문제가 있을 때 사용할 수 있다.
이제 만료시간을 알아보자.
TTL
명령어를 통해서 만료 시간을 확인할 수 있다.
지금 name
은 -1이라는 만료 시간을 확인할 수 있다.
-1은 만료가 되지 않음을 의미한다.
Expire
명령어를 통해 만료 시간을 설정할 수 있다.
name
이 10
초 뒤에 만료되도록 설정해보자.
10초로 설정하고 TTL
명령어를 통해서 지속적으로 만료 시간을 확인했다.
최종적으로 -2가 된것을 확인할 수 있다.
-2는 키가 만료되었음을 나타낸다.
GET
명령어를 통해 name을 조회해도 값이 없는 것을 확인할 수 있다.
SETEX 키 만료시간(초) 값
명령어를 통해 만료시간동안 해당 키에 해당 값을 저장하도록 만들 수 있다.
해당 예시에서는 10초 동안 name
이라는 키가 jang
이라는 값을 가지도록 만들었다.
문자열을 Redis에 저장할 수 있지만 List 형식의 데이터 또한 저장할 수 있다.
LPUSH 키 값
을 통해 리스트의 왼쪽에 데이터를 저장한다.
friends
라는 리스트에 jang과 kim을 저장했다.
왼쪽에 데이터를 삽입하는 방식이기 때문에
kim - jang
이라는 순서로 저장되어 있을 것이다.
LRANGE 시작인덱스 마지막 인덱스
시작 인덱스부터 마지막 인덱스까지 조회한다.
여기서는 LRANGE friends 0 -1
명령어를 통해 리스트의 처음부터 끝까지 조회했다.
RPUSH 키 값
을 통해 리스트의 오른쪽에 데이터를 저장한다.
jung
을 리스트의 오른쪽에 저장했기 때문에 마지막으로 조회되는 것을 확인할 수 있다.
LPOP
또는 RPOP
을 통해 시작 부분(가장 왼쪽) 또는 끝 부분(가장 오른쪽)에 데이터를 가져올 수 있다.
물론 가져온 데이터는 리스트에서 제거된다.
(kim) 팝! - jange - jung
jange - (jung) 팝!
이러한 기능은 예를들어 메시징 앱에서 가장 최근 메시지를 5개를 캐시한다고 할 때 유용하게 사용할 수 있다.
메시지를 LPUSH
로 밀어넣고 RPOP
으로 오래된 것을 삭제하며,
리스트의 크기를 5로 유지하면 된다.
이외에도 Redis에는 다양한 자료형이 있지만 이번 글에서는 Redis에 대해 대략적인 이해를 하는 정도로 기본적인 String 형식과 List 형식만을 써봤다.