
고성능의 인메모리 데이터 구조 저장소
디스크 기반 DB와는 달리 모든 데이터를 메인 메모리(RAM)에 저장해 매우 빠른 읽기/쓰기 속도를 제공하며, 주로 캐싱, 세션 관리, 메시지 브로커 등으로 활용되는 NoSQL 시스템이다.
단순한 키-값(Key-Value) 저장소를 넘어, 여러 복잡한 데이터 구조를 값(Value)으로 지원하여 다양한 기능을 효율적으로 구현할 수 있게한다.
| 자료구조 | 설명 | 주요 활용 예시 |
|---|---|---|
| String | 텍스트, 이진 데이터 등을 저장 | 캐싱, 단순 카운터(조회수) |
| List | 입력 순서가 유지되는 문자열 리스트 | 최근 방문 기록, 큐 및 스택 기능 구현 |
| Hash | 필드-값 쌍으로 구성된 객체 저장 | 사용자 프로필, 대량의 객체 데이터 저장 |
| Set | 중복을 허용하지 않는 문자열 집합 (정렬 X) | 고유 방문자 수(UV), 태그 관리, 사용자 간의 관계 (팔로우) |
| Sorted Set | Set에 점수(Score)를 추가하여 점수 순으로 정렬되는 집합 | 실시간 랭킹 보드, 우선순위 큐Sheets로 내보내기 |
O(N) 이상)를 사용할 경우 해당 연산이 완료될 때까지 다른 모든 요청이 블로킹(Blocking)될 수 있다.메모리에 저장된 데이터를 디스크에 백업하여 데이터의 영속성을 확보하는 두 가지 방식이 있다.
장점
단점
캐싱 - DB 부하를 줄이기 위해 자주 조회되는 데이터를 임시로 저장하여 애플리케이션의 응답 속도를 향상
세션 관리 - 분산된 웹 애플리케이션 환경에서 사용자 로그인 세션 정보를 중앙 집중식으로 저장하여 일관성을 유지
랭킹 시스템 - Sorted Set 자료구조를 활용하여 사용자 점수나 순위를 실시간으로 빠르게 계산하고 조회
메시지 브로커 / 대기열 - List 자료구조를 큐처럼 사용하거나, Pub/Sub (발행/구독) 기능을 활용하여 실시간 채팅 및 알림 서비스 구현
분산 락 - 여러 서버가 공유 자원에 동시에 접근하는 것을 막기 위해 Redis를 사용하여 락(Lock) 기능을 구현