Redis는 Remote Dictionary Server의 약자로, Key-Value 구조의 인메모리 데이터 저장소이다.
모든 데이터를 메모리에 저장하기 때문에 읽기·쓰기 속도가 매우 빠르며, 다양한 자료구조를 지원한다.
주로 캐시, 세션 저장소, 메시지 브로커, 실시간 데이터 처리 등의 용도로 사용된다.
| 항목 | 설명 |
|---|---|
| 인메모리 기반 | 모든 데이터를 메모리에 저장하므로 디스크 접근보다 훨씬 빠름 |
| 다양한 자료구조 | String, List, Hash, Set, Sorted Set 등 다양한 타입 지원 |
| 퍼시스턴스 기능 | 데이터를 디스크에 저장하는 AOF/RDB 기능 제공 |
| Pub/Sub 기능 | 메시지 브로커처럼 사용할 수 있는 publish/subscribe 기능 |
| 원자성 보장 | 하나의 명령은 독립적으로 처리되어 race condition 방지 가능 |
| 목적 | 사용 예시 |
|---|---|
| 캐싱 | DB 조회 결과를 Redis에 저장해 성능 개선 |
| 세션 관리 | 로그인 세션을 Redis에 저장하고 공유 |
| 속도 제한 (Rate Limiting) | 특정 사용자 요청 횟수를 제한 |
| 분산 락 | Redisson 등을 통해 동시성 제어 |
| 실시간 상태 저장 | Kafka 컨슈머 처리 상태 저장, 채팅방 사용자 목록 저장 등 |
brew install redis
brew services start redis
docker run -d -p 6379:6379 --name redis redis
redis-cli ping
# → PONG