1. Redis 소개 #
Redis instance #
- 여러 client가 하나의 redis 서버로 요청 전달
- 단일 redis 서버에 문제가 발생하면 장애 -> 모든 client에서 접속 불가
Redis replication #
- master와 replica로 구성
- master에 데이터가 업데이트 -> replica 동기화
- replica : 읽기만 가능
- replica에 문제 발생 -> 여러 node에 data가 복제되었기 때문에 복구 가능
- master에 문제 발생 -> 개발자가 직접 replica 중 하나를 master로 변경
Redis sentinel #
- master에 문제 발생 -> replica들이 master를 선출
- 이전 master가 복구 된 경우, replica로 전환되어 새로운 master를 바라보게된다.
- Automatic Failover 기능을 제공
- 자동 장애 조치
- 고가용성을 제공
Redis cluster #
- Redis sentinel 보다 조금 더 강력한 기능들을 제공
- 데이터를 자동으로 파티셔닝하고 client의 요청을 필요한 master 혹은 replica에게 전달
- 고가용성, 데이터 분산, 자동 파티셔닝
- 각각의 master에 문제가 생기면 replica가 마스터 역할을 수행
Redis connector #
- Spring에서는 redis connector로 jedis와 lettuce를 지원
- 현재는 기본으로 rettuce 사용
- 별도의 설정을 통해서 jedis를 설정 가능
Redis connector 차이 #
Spring data redis reactive 스택 #
Redis reposito #
- 동기 blocking 방식에서 redis repository를 지원
- reactive 환경에서는 reactive redis repository 미지원
- 강의 : Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지_