003 Reactive Redis Intro

1. Redis 소개 #

Redis instance #

  • 여러 client가 하나의 redis 서버로 요청 전달
  • 단일 redis 서버에 문제가 발생하면 장애 -> 모든 client에서 접속 불가 img.png

Redis replication #

  • master와 replica로 구성
  • master에 데이터가 업데이트 -> replica 동기화
  • replica : 읽기만 가능
  • replica에 문제 발생 -> 여러 node에 data가 복제되었기 때문에 복구 가능
  • master에 문제 발생 -> 개발자가 직접 replica 중 하나를 master로 변경 img_1.png

Redis sentinel #

  • master에 문제 발생 -> replica들이 master를 선출
    • 이전 master가 복구 된 경우, replica로 전환되어 새로운 master를 바라보게된다.
  • Automatic Failover 기능을 제공
    • 자동 장애 조치
  • 고가용성을 제공 img_2.png

Redis cluster #

  • Redis sentinel 보다 조금 더 강력한 기능들을 제공
  • 데이터를 자동으로 파티셔닝하고 client의 요청을 필요한 master 혹은 replica에게 전달
  • 고가용성, 데이터 분산, 자동 파티셔닝
  • 각각의 master에 문제가 생기면 replica가 마스터 역할을 수행 img_3.png

Redis connector #

  • Spring에서는 redis connector로 jedis와 lettuce를 지원
  • 현재는 기본으로 rettuce 사용
  • 별도의 설정을 통해서 jedis를 설정 가능 img_4.png

Redis connector 차이 #

img_5.png img_6.png img_7.png

Spring data redis reactive 스택 #

img_8.png

Redis reposito #

  • 동기 blocking 방식에서 redis repository를 지원
  • reactive 환경에서는 reactive redis repository 미지원 img_9.png

  1. 강의 : Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지_