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
'빅데이터 관련 자료' 카테고리의 다른 글
인 메모리(In-memory) 란? (1) | 2025.04.27 |
---|---|
In-memory DB, Redis를 사용한 이유 (0) | 2025.04.26 |
MongoDB란 무엇인가? NoSQL의 대표 주자 (0) | 2025.04.24 |
메타 AB 테스트, URL 변경해도 될까? (2) | 2025.04.23 |
NoSQL에서도 쿼리를 사용할까? 기초 문법과 예제 (2) | 2025.04.23 |