1. 한줄정리
데이터를 디스크가 아닌 메모리에 올려 마이크로초 단위로 읽고 쓰는, 키-값 구조의 인메모리 데이터 저장소.
2. 정의
핵심 키워드 · 인메모리, 키-값, 캐시, 자료구조, 영속화(RDB·AOF), 싱글스레드, 복제, 클러스터
데이터를 메모리에 올려 초고속으로 처리하는 키-값 기반 인메모리 저장소.
Redis(REmote DIctionary Server)는 모든 데이터를 메모리에 보관해 디스크 기반 데이터베이스보다 수십~수백 배 빠른 응답을 내는 오픈소스 저장소. 단순 문자열뿐 아니라 리스트·해시·셋·정렬셋 같은 다양한 자료구조를 값으로 다루며, 주로 캐시·세션 저장소·실시간 순위표·메시지 브로커로 활용되는 도구.
3. 목적
- 응답 지연 최소화 — 자주 읽는 데이터를 메모리에 올려 디스크 접근 없이 마이크로초급으로 반환하는 속도 확보.
- 데이터베이스 부하 분산 — 반복 조회를 캐시가 흡수해 원본 DB의 부하와 비용을 낮추는 완충 계층.
- 다양한 실시간 처리 — 자료구조와 원자적 연산으로 순위표·카운터·큐 같은 기능을 별도 구현 없이 제공하는 범용성.
4. 특징
| 인메모리 저장 | 초고속 | 모든 데이터를 RAM에 보관해 디스크 I/O를 없앤, 마이크로초급 응답의 근원. |
| 다양한 자료구조 | 표현력 | String·List·Hash·Set·Sorted Set·Stream 등을 값으로 지원해 용도별로 최적 구조를 고르는 유연성. |
| 영속화(RDB·AOF) | 내구성 | 메모리 데이터를 스냅샷(RDB)이나 명령 로그(AOF)로 디스크에 남겨 재시작 시 복원하는 안전장치. |
| 싱글스레드 처리 | 단순·일관 | 명령을 단일 스레드가 순차 처리해 락 없이 원자성을 보장하는 구조. |
| 복제·클러스터 | 확장성 | 마스터-복제본 구성과 샤딩으로 읽기 분산과 수평 확장을 이루는 고가용성. |
5. 실무 및 서비스 예시

| 캐시 계층 | 응답 가속 | 자주 조회되는 결과를 앞단에 저장해 DB 왕복을 줄이는 캐시-어사이드 활용. |
| 세션 저장소 | 상태 공유 | 여러 웹 서버가 사용자 로그인 세션을 공유하도록 중앙에 보관하는 세션 스토어. |
| 실시간 순위표 | 랭킹 | Sorted Set의 점수 정렬로 게임·콘텐츠 순위를 즉시 계산하는 리더보드. |
| 메시지 브로커 | 비동기 | Pub/Sub과 Stream으로 이벤트를 실시간 전달하는 경량 메시지 큐. |
6. 보안 취약점
| 기본 무인증 | 무단 접근 | 초기 설정이 인증 없이 열려 있어, 노출된 인스턴스에 누구나 접속하는 위험. |
| 포트 노출(6379) | 외부 스캔 | 공인 IP에 기본 포트가 열리면 자동 스캐너에 발견돼 데이터가 탈취되는 경로. |
| 명령 악용·RCE | 원격 실행 | CONFIG·모듈·Lua 스크립트 오남용으로 서버 파일 조작이나 원격 코드 실행에 이르는 취약점. |
| 평문 저장·전송 | 정보 유출 | 데이터와 통신이 기본 평문이라, 스니핑이나 메모리 접근으로 민감정보가 새는 노출. |
7. 대응방안
- 인증·접근통제 — requirepass와 ACL로 계정·명령 권한을 제한하고, 신뢰 네트워크로만 접근을 여는 최소 권한.
- 네트워크 격리 — 공인 IP 노출을 막고 방화벽·bind 설정으로 포트를 내부망에 묶으며, 위험 명령을 rename-command로 봉인하는 차단.
- 암호화·감사 — TLS로 통신을 암호화하고 접근 로그를 남겨, 유출과 이상 접근을 탐지하는 방어.
8. 이해를 돕기 위한 비유
Redis는 '자주 쓰는 물건을 책상 위에 올려 두는 것'과 같은 방식. 창고(디스크 DB)에서 매번 물건을 꺼내 오면 오래 걸리지만, 손이 닿는 책상(메모리)에 자주 쓰는 것을 올려 두면 즉시 집는 속도.
다만 책상 공간(메모리)은 창고보다 좁고 비싸며, 정전이 나면 책상 위 메모가 날아갈 수 있어(휘발성) 중요한 것은 창고에도 적어 두는 이중화(영속화)가 필요한 구조. Redis는 이 '책상' 역할을 맡아, 자주 찾는 데이터를 앞단에 두고 전체 시스템의 체감 속도를 끌어올리는 존재.
9. 심화 분석
Redis는 같은 인메모리 캐시로 자주 비교되는 Memcached와 지향점이 다른 도구. 두 저장소의 차이를 항목별로 정리한 비교.
| 자료구조 | String·List·Hash·Set·Sorted Set 등 다양 | 단순 문자열 키-값만 지원 |
| 영속화 | RDB·AOF로 디스크 저장·복원 가능 | 메모리 전용으로 재시작 시 데이터 소멸 |
| 확장·복제 | 복제·클러스터·고가용성(Sentinel) 내장 | 기본 복제 없이 클라이언트 샤딩에 의존 |
| 부가 기능 | Pub/Sub·트랜잭션·Lua·TTL 등 풍부 | 캐시에 특화된 최소 기능 |
| 적합 상황 | 순위표·세션·큐 등 복합 용도 | 단순 캐시에 가벼운 다중스레드 성능 |
Memcached는 단순 문자열 캐시에 특화돼 멀티스레드로 가볍고 빠른 반면, Redis는 다양한 자료구조와 영속화·복제·부가기능으로 캐시를 넘어 데이터 플랫폼에 가까운 확장성. 최근에는 풍부한 기능과 운영 편의 덕에 대부분의 신규 프로젝트가 Redis를 기본 선택지로 두는 추세. 단, 모든 데이터를 메모리에 올리는 특성상 용량과 비용의 한계가 있어, 뜨거운 데이터만 선별해 올리는 설계가 핵심.
10. 마무리 3줄정리
- Redis는 데이터를 메모리에 올려 마이크로초급으로 읽고 쓰는, 다양한 자료구조를 지원하는 키-값 인메모리 저장소.
- 캐시·세션·순위표·메시지 브로커로 널리 쓰이며, RDB·AOF 영속화와 복제·클러스터로 내구성과 확장성을 갖춘 도구.
- 기본 무인증·포트 노출 같은 보안 약점이 있어, 인증·네트워크 격리·암호화로 방어가 필수인 저장소.