레디스란?
Remote Dictionary Server
의 약자
key-value store
→ 수평적 확장 쉬움 but 범위 검색 등의 복잡한 쿼리 불가능
- 백업기능 같은 걸로 어느정도
영속성
도 보장할 수 있음(대신 속도 측면에서 조금 트레이드 오프 해야함)
레디스로 할 수 있는 것
- 아주 빠른 데이터 저장소로 활용 (
In-Memory DB
)
- 분산된 서버들 간의 커뮤니케이션 (동기화, 세션 등)
- 내장 자료구조를 활용한 기능 구현
- 예시
- Session Store
- Cache
- Limit Rater: 특정 API의 분당 호출수 제한
- Job Queue: 메시지큐 기능
레디스 설치와 실습
레디스 설치하기
brew install redis
// redis 이미지 불러오기
docker pull redis
// redis 실행
docker run --name my-redis -p 6379:6379 redis
// redis 중단
docker stop my-redis
레디스 실습
- 레디스 모듈은 두 가지로 이루어져있다.
- redis-server : 레디스 서버
- redis-cli : 레디스 서버에 커맨드를 실행할 수 있는 인터페이스
// 도커 컨테이너 안에서 쉘 실행
docker exec -it my-redis[컨테이너 이름] /bin/sh[컨테이너에서 실행할 명령]
// 컨테이너 내부 쉘에서 redis-cli 실행
// 호스트, 포트 지정 안하면 127.0.0.1.6379 사용
redis-cli
// redis 커맨드 사용
127.0.0.1:6379 > set key1 banana
127.0.0.1:6379 > get key1 // banana
docker exec -it my-redis /bin/sh
이란?