Redis는 극한의 속도를 자랑하는 인메모리 데이터 저장소로, 캐시부터 실시간 데이터 처리까지 모든 퍼포먼스를 가속시켜준다.
우리는 다양한 프로젝트를 진행하다 보면 종종 다음과 같은 고민을 하게 된다.
이런 문제를 해결해주는 빠르고 가벼운 저장소가 바로 Redis이다.
Redis는 Remote Dictionary Service의 약자로, 오픈 소스 기반의 Key-Value 형태 In-Memory 데이터 저장소이다.
Key-Value 기반이기 때문에 쿼리를 직접 보낼 필요 없이 의 시간 복잡도로 값을 바로 조회할 수 있다.
또한 디스크가 아닌 메모리에서 데이터를 처리하므로 속도가 매우 빠르고,
NoSQL 구조이며 List, Hash, Set, Sorted Set 등 다양한 자료구조도 지원한다.
Redis는 내부적으로 해시 테이블(dict) 구조를 기반으로 동작한다.
SET user:1001 "Alice"
GET user:1001 # -> "Alice"
Redis는 key를 해시 처리한 후, 메모리 주소에서 즉시 조회한다. 디스크 접근이 필요 없기 때문에, 일반 RDBMS보다 수백 배 이상 빠르다.
Redis는
"Key → Value"
를 메모리에서 바로 찾아내므로,
쿼리가 아닌 "주소 접근"처럼 작동한다.
인메모리 방식이란, 데이터를 하드디스크가 아닌 RAM에 올려서 직접 처리하는 방식이다.
메모리 내부에서 모든 연산이 이루어지기 때문에 저장과 조회 속도가 매우 빠르다.
하지만 한계도 있다:
용도 | 설명 |
---|---|
캐시 | DB 쿼리 결과, API 응답 등을 임시 저장해 빠른 응답 제공 가능 |
세션 저장소 | JWT나 로그인 세션 등 사용자 인증 데이터 저장 |
실시간 랭킹 | Sorted Set으로 실시간 점수 정렬 처리 |
메시지 큐 | Pub/Sub 또는 Stream 구조로 간단한 비동기 처리 |
토큰 저장/Rate Limit | 인증/요청 제한 제어 |
Redis는 MySQL을 대체하지 않고, 보완하는 용도로 많이 사용된다.
INCR post:123:views
이렇게 하면 DB 부하를 줄이면서도 실시간 응답이 가능해진다.
RDB
, AOF
설정 필요다음 포스팅에서는 실전에서 Redis를 어떻게 사용하는지를 다뤄볼 예정이다.