멋쟁이 사자처럼

[멋사 백엔드 부트캠프] Redis

sunm2n 2025. 7. 1. 17:45

 

Redis란?

 

Remote Dictionary Server의 약자.

메모리 기반의 Key-Value NoSQL 데이터베이스.

디스크에도 데이터를 저장 가능하지만, 주 저장소는 메모리.

빠른 속도와 Pub/Sub, Stream, Sorted Set 등의 다양한 자료구조를 지원.

싱글 스레드 기반(이벤트 루프 기반 I/O 처리)으로 동작하여 구조가 단순하면서도 빠름.

 

 

Redis의 주요 특징

 

In-Memory 기반

  • 데이터를 메모리에 저장하여 읽기/쓰기 속도가 매우 빠름 (수십만 QPS 가능).
  • 주로 캐싱(세션 관리, 랭킹, 메시지 큐) 용도로 사용.

Persistence(지속성) 지원

  • 메모리 기반이지만 데이터 유실 방지를 위해 디스크에 저장 가능.
  • RDB 스냅샷: 주기적으로 데이터를 덤프.
  • AOF(Append Only File): 모든 Write 작업을 로그로 기록.

다양한 자료구조 지원

  • String, List, Set, Sorted Set, Hash, Bitmap, HyperLogLog, Stream 등.

Atomic Operation 지원

  • 단일 명령은 원자적으로 처리되어 race condition 방지 가능.

Replication (Master-Slave) 지원

  • 읽기 부하 분산 및 고가용성 확보 가능.

Pub/Sub 지원

  • 간단한 메시지 브로커처럼 사용 가능 (채팅, 실시간 알림 등).

Cluster 지원

  • 샤딩 기반으로 수평적 확장 가능 (Redis Cluster).

 

Redis 적용 전

 

 

Redis 적용 후

 

 

 

 

 

 

Redis는 데이터를 Key-Value 쌍으로 저장하며, Key를 통해 Value를 즉시 조회할 수 있다.

 

네이밍 방식 (user:1:name)

  • :을 구분자로 사용하여 네임스페이스(namespace)처럼 사용.
  • user : 데이터 그룹(사용자)
  • 1 : 사용자 ID
  • name : 속성

 이를 통해 데이터를 체계적으로 구분하여 관리할 수 있으며, 키를 검색할 때 user:1:* 와 같이 와일드카드로 특정 사용자 데이터만 가져올 수도 있다.