Redis란 무엇인가? 인메모리 데이터 저장소의 대표주자
잡학다식의 지식공방

빅데이터 관련 자료

Redis란 무엇인가? 인메모리 데이터 저장소의 대표주자

carpe08 2025. 4. 25. 10:14
320x100

Redis는 Remote Dictionary Server의 약자로, Key-Value 구조의 데이터를 메모리에 저장하는 오픈소스 인메모리 데이터 저장소입니다. 매우 빠른 속도로 데이터를 처리할 수 있어 캐시, 세션 저장소, 실시간 분석 등에 널리 사용되고 있습니다.


1. Redis의 기본 개념

Redis는 단순한 Key-Value 저장소이지만, 단순히 문자열만 저장하는 것이 아니라 다양한 데이터 구조를 지원합니다. 메모리에 데이터를 저장하기 때문에 디스크 기반 DB보다 훨씬 빠르며, 필요에 따라 데이터를 디스크에 백업할 수도 있습니다.

주요 특징:

  • In-memory 기반으로 초고속 데이터 처리
  • 다양한 데이터 타입 지원 (String, List, Set, Hash, Sorted Set 등)
  • 데이터 영속성 지원 (RDB, AOF)
  • 복제, 고가용성, 클러스터링 기능 내장
  • Pub/Sub 메시징 기능 제공

2. Redis는 어디에 쓰일까?

Redis는 다음과 같은 다양한 용도로 활용됩니다.

1) 캐시 서버

  • 자주 조회되는 데이터를 메모리에 저장해 DB 부담을 줄이고 응답 속도 향상

2) 세션 저장소

  • 로그인 정보 등 사용자 세션 데이터를 Redis에 저장해 여러 서버 간 공유 가능

3) 순위 시스템

  • Sorted Set 자료형을 활용해 게임이나 커뮤니티의 랭킹 시스템 구현

4) 실시간 알림 시스템

  • Pub/Sub 기능을 통해 메시지를 구독하고 실시간으로 전송

5) 작업 큐

  • List 또는 Stream 자료형을 활용한 비동기 작업 처리 (예: 메일 전송, 예약 처리 등)

3. Redis의 데이터 타입

Redis가 특별한 이유 중 하나는 다양한 자료구조를 기본적으로 지원한다는 점입니다.

자료형 설명 예시

String 문자열 값 user:1:name → "홍길동"
List 순서 있는 문자열 목록 recent_users → ["kim", "lee"]
Set 중복 없는 집합 tags → {"python", "redis"}
Hash 필드-값 구조의 객체 user:1 → {name: "홍길동", age: 30}
Sorted Set 점수를 기준으로 정렬된 집합 leaderboard → {"user1": 100, "user2": 95}
Stream 실시간 로그/이벤트 처리용 로그 스트림 message:stream

4. Redis의 영속성

Redis는 기본적으로 메모리에 데이터를 저장하지만, 영속성을 위해 아래 방식으로 디스크에 저장할 수 있습니다.

  • RDB(Snapshotting): 일정 주기마다 전체 데이터를 덤프해 저장
  • AOF(Append Only File): 변경 사항을 모두 로그로 기록하여 복구 가능

5. 요약

Redis는 단순하면서도 강력한 인메모리 데이터 저장소입니다. 고속의 응답 시간, 다양한 데이터 타입, 뛰어난 확장성 덕분에 다양한 분야에서 활용되고 있으며, 특히 성능이 중요한 웹 애플리케이션에서 빠질 수 없는 필수 구성 요소로 자리잡고 있습니다.

320x100
320x100