Redis의 기본 개념, 특징, 설치 방법을 알아봅니다.

Redis란?

Redis(Remote Dictionary Server)는 오픈소스 인메모리 데이터 구조 스토어입니다.
키-값(Key-Value) 기반이지만, 다양한 데이터 구조를 지원하여 캐시, 메시지 브로커, 세션 스토어 등 폭넓게 활용됩니다.

RDBMS vs Redis 비교

항목 RDBMS (MySQL 등) Redis
저장 방식 디스크 기반 인메모리 (RAM)
데이터 모델 테이블/행/열 (관계형) Key-Value (다양한 자료구조)
스키마 고정 스키마 필수 스키마 없음 (Schemaless)
쿼리 언어 SQL Redis 명령어
트랜잭션 ACID 완전 지원 제한적 (MULTI/EXEC)
속도 ms 단위 μs 단위 (10~100배 빠름)
데이터 크기 디스크 용량만큼 RAM 용량에 제한
영속성 기본 영속 선택적 (RDB/AOF)
용도 영구 데이터 저장 캐시, 세션, 실시간 처리

Redis 주요 특징

특징 설명
인메모리 모든 데이터를 RAM에 저장, 초고속 읽기/쓰기
다양한 자료구조 String, List, Set, Hash, Sorted Set, Stream 등
영속성 옵션 RDB 스냅샷, AOF 로그로 디스크 저장 가능
복제 Master-Replica 구조 지원
클러스터 Redis Cluster로 수평 확장
Pub/Sub 메시지 발행/구독
TTL 키별 만료 시간 설정
싱글 스레드 단일 스레드로 원자적 명령 실행 (락 불필요)
Lua 스크립팅 서버 측 스크립트 실행

Redis 활용 사례

용도 설명
캐시 DB 쿼리 결과, API 응답 캐싱
세션 스토어 웹 애플리케이션 세션 관리
실시간 랭킹 Sorted Set으로 리더보드 구현
메시지 큐 List/Stream으로 작업 큐 구현
Rate Limiting API 호출 횟수 제한
분산 락 분산 환경에서의 동기화
실시간 분석 HyperLogLog로 고유 방문자 수 집계
Pub/Sub 실시간 알림, 채팅

설치

Windows

Windows에서는 공식 지원이 제한적이므로 WSL2 또는 Docker를 권장합니다.

Docker (권장)

docker run -d --name redis -p 6379:6379 redis:7-alpine

# 비밀번호 설정
docker run -d --name redis -p 6379:6379 redis:7-alpine --requirepass "RedisPass123!"

# 접속
docker exec -it redis redis-cli

WSL2 (Ubuntu)

sudo apt update
sudo apt install redis-server
sudo systemctl start redis-server

Mac

brew install redis
brew services start redis

Linux (Ubuntu/Debian)

sudo apt update
sudo apt install redis-server
sudo systemctl start redis-server
sudo systemctl enable redis-server

설치 확인

redis-cli ping
# 응답: PONG

접속 방법

redis-cli

# 로컬 접속
redis-cli

# 원격 접속
redis-cli -h 192.168.1.100 -p 6379

# 비밀번호 인증
redis-cli -h localhost -p 6379 -a "RedisPass123!"

# 접속 후 인증
redis-cli
AUTH RedisPass123!

# 특정 DB 선택 (기본 0~15번)
redis-cli -n 1
SELECT 1

기본 명령어

PING                    # PONG (연결 확인)
INFO                    # 서버 정보
INFO memory             # 메모리 정보
INFO clients            # 클라이언트 정보
DBSIZE                  # 현재 DB의 키 개수
FLUSHDB                 # 현재 DB 전체 삭제
FLUSHALL                # 모든 DB 전체 삭제
CONFIG GET maxmemory    # 설정 조회
CONFIG SET maxmemory 2gb # 설정 변경
SHUTDOWN                # 서버 종료

GUI 도구

도구 특징 가격
Redis Insight Redis 공식 도구, 시각화 우수 무료
Another Redis Desktop Manager 가볍고 빠름, 크로스 플랫폼 무료
Medis Mac 전용, 깔끔한 UI 유료
RedisCommander 웹 기반 무료

Redis 아키텍처 기본 개념

용어 설명
Database 번호로 구분되는 논리적 공간 (기본 0~15)
Key 데이터를 식별하는 문자열 (바이너리 안전)
Value Key에 연결된 데이터 (다양한 자료구조)
TTL Time To Live, 키 만료 시간
RDB 특정 시점의 메모리 스냅샷 (파일: dump.rdb)
AOF Append Only File, 모든 쓰기 명령 로그
Sentinel 고가용성 모니터링/자동 페일오버
Cluster 데이터 샤딩을 통한 수평 확장

관련된 글 (redis > lecture-redis)