Redis Cache 이론

2024. 5. 7. 22:28·Spring/대용량 트래픽

2024.05.07 - [Spring/대용량 트래픽] - Redis Key, Scan 명령어

 

Redis Key, Scan 명령어

2024.05.07 - [Spring/대용량 트래픽] - Redis Transactions Redis Transactions2024.05.03 - [Spring/대용량 트래픽] - Java에서 Redis 명령어 Java에서 Redis 명령어2024.04.30 - [Spring/대용량 트래픽] - Redis 다양한 데이터 타입

lsdiary.tistory.com

 

 

Cache

 

일시적으로 데이터를 저장하는 고속처리를 위한 임시저장소. 빠른 응답속도를 위함.

활용예시
  • CPU
    • L1 Cache : 각 코어별
    • L2 Cache : 모든 코어가 공유
  • Application
    • DB, 외부 API요청 : 무거운 쿼리, 변경이 적고 접근빈도가 높은 데이터 Cache에 저장
주요용어
  • Cache Hit : 캐시에 데이터있음
  • Cache Miss : 캐시에 데이터없음

Hit많이 나야 캐시를 사용하는 의의가 있다!


Cache Pattern

 

read관점과 write관점으로 나누어 본다.

read
  • cache aside 패턴
    • 1. cache에 질의 (데이터 없다면){2. DB에 질의 3. DB로부터 cache에 저장}
    • 3.에서 TTL을 주어 특정시간만큼만 임시저장한다.(메모리부족방지, DB변경시 일관성유지)
    • DB에 write할때, cache invalidation(캐시 무효화)를 통해 일관성유지
wirte
  • write-back 패턴
    • 1. 서버에서 캐시에 write작업 쌓음 2. 캐시내용 일괄적으로 DB에 반영
    • 캐시 가용성에 따라 데이터유실 주의!
    • 복잡도가 높으면 구현 어려움

+) 추가적인 패턴들

 

  • 대용량 트래픽 이커머스 서비스의 경우

 

로컬/분산 cache를 함께 사용하는 경우

  • 분산 cache(1차) : 별도의 서버로 운영되는 Redis Cache
  • 로컬 cache(2차) : 서버에 메모리를 캐시로써 임시저장.

DB -> 분산cache -> 로컬 cache적재

DB수정이 일어나면 분산 cache 먼저 수정되어야함.

 

  • 하나의 서비스에 대해 여러개의 cache서버 운용 (ex. 마이크로 서비스)

이론적인 부분을 전반적으로 살펴봤고, 다음글에서는 Java로 어떻게 이걸 적용하는지 실습해보겠다.

2024.05.08 - [Spring/대용량 트래픽] - Redis Cache로 실습하기

 

Redis Cache로 실습하기

2024.05.07 - [Spring/대용량 트래픽] - Redis Cache 이론 Redis Cache 이론2024.05.07 - [Spring/대용량 트래픽] - Redis Key, Scan 명령어 Redis Key, Scan 명령어2024.05.07 - [Spring/대용량 트래픽] - Redis Transactions Redis Transact

lsdiary.tistory.com

 

'Spring > 대용량 트래픽' 카테고리의 다른 글

Spring Boot Cache  (0) 2024.05.08
Redis Cache로 실습하기  (0) 2024.05.08
Redis Key, Scan 명령어  (0) 2024.05.07
Redis Transactions  (0) 2024.05.07
Java에서 Redis 명령어  (0) 2024.05.03
'Spring/대용량 트래픽' 카테고리의 다른 글
  • Spring Boot Cache
  • Redis Cache로 실습하기
  • Redis Key, Scan 명령어
  • Redis Transactions
Ls._.Rain
Ls._.Rain
안되면 될때까지 삽질했던 기록
  • Ls._.Rain
    Ls{Diary}
    Ls._.Rain
  • 전체
    오늘
    어제
    • 분류 전체보기 (136)
      • Github (2)
      • Spring (51)
        • Batch Programming (13)
        • 결제 (4)
        • 대용량 트래픽 (32)
        • OpenAI (0)
        • Security (0)
        • WebSocket (0)
        • JPA (1)
      • Algorithm (67)
        • DFS (6)
        • BFS (6)
        • Dynamic Programming (10)
        • Brute Force (4)
        • Binary Search (6)
        • 구현, 시뮬레이션 (15)
        • Stack (1)
        • Greedy (4)
        • Priority_Queue (2)
        • Back Tracking (3)
        • Geometry (2)
        • SCC (1)
        • 투포인터 (4)
        • 최대유량 (1)
        • 정렬 (1)
      • OS (0)
      • DevOps (15)
        • AWS (11)
        • Docker (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • hELLO· Designed By정상우.v4.10.0
Ls._.Rain
Redis Cache 이론
상단으로

티스토리툴바