1. 로컬(Windows)에서 Redis 설치하기
아래 링크로 들어가 확장자가 msi인 설치 프로그램을 다운로드하여야 한다.
https://github.com/microsoftarchive/redis/releases
설치 과정에서 딱히 따로 설정할 것은 없다.
- Redis의 기본 포트 번호: 6379
- Redis에 할당된 기본 메모리 크기: 100MB
이후 redis-cli.exe를 실행하면 Redis를 실행할 수 있다.
Redis 실행창에서 ping 명령어를 입력하면 Redis가 잘 동작하고 있는지 확인할 수 있다.
PONG이 반환된다면 Redis가 잘 동작하고 있다는 뜻이다.
2. Redis 기본 명령어 익히기
우선은 핵심적인 기능 7가지만 학습한다. 추가적으로 필요한 기능은 따로 학습하는 것이 좋다.
데이터(Key-Value) 저장하기
# set [key 이름] [value]
# 데이터 저장 성공 시 OK가 출력됨
set jaeseong:name "jaeseong park" # Value 값을 띄워쓰기를 포함해서 저장하려면 쌍따옴표로 묶어주면 됨
set jaeseong:hobby soccer
데이터 조회하기 (Key 값으로 Value 값 조회하기)
# get [key 이름]
# key 값에 해당하는 value 값이 출력됨
get jaeseong:name # "jaeseong park" 출력됨
get jaeseong:hobby # soccer 출력됨
get pjs:name # 없는 데이터를 조회할 경우 (nil)이라고 출력됨
저장된 모든 key 조회하기
keys *
# 1) "jaeseong:name"
# 2) "jaeseong:hobby"
# key가 없는 경우 (empty array) 출력
데이터 삭제하기 (Key 값으로 데이터 삭제하기)
# del [key 이름]
# 삭제된 key의 index를 출력
del jaeseong:hobby # (integer) 1 출력
get jaeseong:hobby # 삭제됐는 지 확인 -> (nil) 출력
데이터 저장 시 만료시간(TTL) 정하기
# set [key 이름] [value] ex [만료 시간(초)]
# 영구적으로 데이터를 저장하지 않고 임계점을 정해 저장할 수 있음
# (인메모리 공간이기 때문에 디스크보다 작기 때문에 TTL을 자주 적용)
set jaeseong:pet dog ex 30
만료시간(TTL) 확인하기
# ttl [key 이름]
# 만료 시간이 몇 초 남았는 지 반환
# 키가 없는 경우 -2를 반환
# 키는 존재하지만 만료 시간이 설정돼 있지 않은 경우에는 -1을 반환
ttl jaeseong:pet
ttl jaeseong:name
ttl pjs:name
모든 데이터 삭제하기
flushall # 성공 시 OK 출력
3. Redis에서 Key 네이밍 컨벤션 익히기
실무에선 주로 콜론(:)을 활용해 계층적으로 의미를 구분해 사용한다.
Key가 겹치지 않도록 고유한 명사 등을 아래처럼 사용하면 된다.
- jaeseong:name
- jaeseong:hobby
- users:100:profiles
- products:123:details
이런 식으로 컨벤션을 정했을 때의 장점이 존재한다.
- 가독성: 데이터의 의미와 용도를 쉽게 파악할 수 있다.
- 일관성: 컨벤션을 따름으로써 코드의 일관성이 높아지고 유지보수가 쉬워진다.
- 검색 및 필터링 용이성: 패턴 매칭을 사용해 특정 유형의 Key를 쉽게 찾을 수 있다.
- 확장성: 서로 다른 Key와 이름이 겹쳐 충돌할 일이 적어진다.