Redis 특징 완벽 정리
Redis란?
Redis(Remote Dictionary Server)는 인메모리 기반의 Key-Value NoSQL 데이터베이스입니다.
일반적인 데이터베이스는 데이터를 디스크에 저장하지만, Redis는 RAM(메모리)에 저장하기 때문에 속도가 압도적으로 빠릅니다.
1. 빠른 속도
Redis의 가장 큰 특징은 속도입니다.
디스크 기반 DB는 데이터를 읽을 때 디스크 I/O가 발생하지만, Redis는 메모리에서 직접 읽고 쓰기 때문에 일반 RDB보다 수십~수백 배 빠릅니다.
일반 DB : 디스크 → 메모리 → 응답 (느림)
Redis : 메모리 → 응답 (빠름)
2. 다양한 자료구조 지원
Redis는 단순한 Key-Value를 넘어 다양한 자료구조를 지원합니다.
| 자료구조 | 설명 | 활용 예시 |
|---|---|---|
| String | 가장 기본 타입 | 캐싱, 카운터 |
| List | 순서 있는 목록 | 최근 방문 목록 |
| Set | 중복 없는 집합 | 좋아요 기능 |
| Hash | 필드-값 쌍 | 유저 정보 저장 |
| Sorted Set | 점수 기반 정렬 | 랭킹 시스템 |
3. TTL (만료시간) 설정
Redis는 데이터에 만료시간을 설정할 수 있습니다.
설정한 시간이 지나면 데이터가 자동으로 삭제되기 때문에 세션 관리나 JWT Refresh Token 저장에 매우 적합합니다.
SET refresh_token "abc123" EX 604800 # 7일 후 자동 삭제
별도로 삭제 로직을 구현하지 않아도 되기 때문에 개발 편의성도 높아집니다.
4. 영속성 지원
Redis는 인메모리 저장소지만, 서버가 재시작되어도 데이터를 유지할 수 있는 영속성 옵션을 제공합니다.
- RDB : 특정 시점의 데이터를 스냅샷으로 디스크에 저장
- AOF : 모든 쓰기 명령을 로그로 기록해 복구 가능
5. Single Thread
Redis는 Single Thread로 동작합니다.
한 번에 하나의 명령만 처리하기 때문에 동시에 여러 요청이 들어와도 순서대로 처리되어 Race Condition 없이 원자적 연산이 보장됩니다.
Redis 주요 활용 사례
- 캐싱 : 자주 조회되는 데이터를 Redis에 저장해 DB 부하 감소
- 세션 / 토큰 관리 : TTL을 활용한 Refresh Token 저장
- 랭킹 시스템 : Sorted Set으로 실시간 순위 구현
- 메시지 큐 : List 자료구조를 활용한 작업 큐 구현
정리
Redis는 빠른 속도, 다양한 자료구조, TTL 지원이라는 세 가지 핵심 강점을 가진 인메모리 데이터베이스입니다.
단순한 캐싱 도구를 넘어 세션 관리, 랭킹 시스템, 메시지 큐 등 다양한 용도로 활용할 수 있어 현대 백엔드 개발에서 빠질 수 없는 기술입니다.
실제 적용 : Creator-Flex 프로젝트에서 Redis로 Refresh Token 관리하기
Creator-Flex 프로젝트에서 JWT 인증 구현 시 Refresh Token 저장소로 Redis를 선택했습니다.
RDB 대비 빠른 조회 성능과 TTL 자동 만료 기능이 토큰 관리에 적합했기 때문입니다.
키는 refresh:{memberId} 형태로 설계해 사용자당 항상 1개의 토큰만 유지되도록 했습니다.
재발급 시 기존 토큰을 즉시 무효화하는 RTR(Refresh Token Rotation) 전략을 적용해 보안을 강화했습니다.
로그인 시 저장(TTL 14일) → 만료 시 재발급 → 로그아웃 시 삭제 흐름으로 동작합니다.
'-- 오늘 있었던 개발 일기' 카테고리의 다른 글
| 브라우저 렌더링 원리 (0) | 2026.02.20 |
|---|---|
| 동기(Sync)와 비동기(Async) (0) | 2026.02.20 |
| Refresh Token을 HttpOnly Cookie로 변경한 이유! (0) | 2026.02.12 |
| ReFresh Token 에서 Refresh Token Rotation까지 사용하자 (0) | 2026.02.11 |
| 트랜잭션의 격리 수준 (0) | 2026.02.01 |