1. Redis 알아보기

김신영·2023년 12월 28일
0

Redis

목록 보기
1/1
post-thumbnail

Redis

Remote Dictionary Server

Introduction to Redis

Redis 특징

In-Memory

  • 모든 데이터를 RAM에 저장
    • 백업, 스냅샷은 제외

Single Thread

  • 단일 Thread 기반으로 모든 Task 처리

Cluster Mode

  • 다중 노드에 데이터를 분산 저장
  • 안정성, 고가용성 제공

Persistence

  • RDB, AOF를 통해 영속성 옵션 제공
    • RDB (Redis Database)
    • AOF (Append only File)

Pub / Sub

  • Publish / Subscribe 패턴을 지원
  • 손쉬운 Application 개발
    • 채팅, 알림

Redis 장점

  • 높은 성능
    • 모든 데이터를 메모리에 저장하기 때문에 매우 빠른 읽기/쓰기 속도 보장
  • Data Type 지원
  • 클라이언트 라이브러리 지원
  • 다양한 사례 / 강한 커뮤니티

Redis 사용 사례

Caching

  • 임시 비밀번호 (OTP)
  • 로그인 세션 (Sessions)

Rate Limiter

  • Fixed-Window Rate Limiter
  • Sliding-Window Rate Limiter

Message Broker

  • Message Queue

실시간 분석 / 계산

  • 순위표
    • Rank
    • LeaderBoard
  • 반경 탐색
    • Geofencing
  • 방문자 수 계산
    • Visitors COunt

실시간 채팅

  • Pub / Sub 패턴 활용

Persistence

  • Redis는 주로 캐시로 사용되지만, 데이터 영속성을 위한 옵션 제공
  • SSD와 같은 영구적인 저장 장치에 데이터 저장

RDB (Redis Database)

  • Point-in-time Snapshot
  • Disaster Recovery 또는 복제에 주로 사용

💡 일부 데이터 유실의 위험이 있음

스냅샷 생성 중 클라이언트 요청 지연 발생

AOF (Append Only File)

  • Redis에 적용되는 Wrtie 작업을 모두 log로 저장
  • 데이터 유실 위험이 적다.
    • 하지만, 재난 복구시 Write 작업을 다시 적용하기 때문에 RDB보다 느림

💡 RDB + AOF 함께 사용하는 옵션 제공

Caching

데이터를 빠르게 읽고 처리하기 위해 임시로 저장하는 기술

Cache Hit / Miss

Untitled

Cache Strategy

Cache Strategies

Cache-Aside

  • 데이터가 요청되면 애플리케이션은 먼저 캐시를 확인합니다.
  • 데이터가 캐시에 없으면 데이터베이스에서 검색하여 나중에 사용할 수 있도록 캐시에 저장합니다.
  • 이 전략은 간단하고 유연하지만 캐시를 최신 상태로 유지하려면 캐시를 주의 깊게 관리해야 합니다.

image

Write-Through

  • 이 전략에서는 데이터가 캐시와 데이터베이스에 동시에 기록됩니다.
  • 데이터가 업데이트되면 캐시와 데이터베이스에 동시에 기록됩니다.
  • 이렇게 하면 캐시에 항상 최신 데이터가 포함되지만 쓰기 작업 속도가 느려질 수 있습니다.

image

Wrtie-Behind

  • 이 전략에서는 데이터가 먼저 캐시에 기록되고 나중에 데이터베이스에 기록됩니다.
  • 이를 통해 쓰기 작업이 더 빨라지지만 캐시가 제대로 관리되지 않으면 데이터 불일치가 발생할 수 있습니다.

image

Read-Through

  • 이 전략에서는 캐시가 기본 데이터 원본으로 사용됩니다.
  • 데이터가 요청되면 캐시를 먼저 확인합니다.
  • 데이터가 캐시에 없으면 데이터베이스에서 검색하여 나중에 사용할 수 있도록 캐시에 저장합니다.
  • 이 전략은 데이터베이스가 느리거나 데이터를 자주 읽지만 거의 업데이트되지 않는 경우에 유용할 수 있습니다.

image

profile
Hello velog!

0개의 댓글