본문 바로가기

윈도우즈 개발 환경

Redis

다운로드 및 설치

  • 윈도우 OS는 GitHub - Redis에서 다운로드 후 실행
  • 설치가 끝나면 Win+R에서 services.msc를 실행시켜 Redis가 추가됨을 확인
  • 기본적인 설치가 끝나면 아래와 같이 redis 라이브러리 및 프로퍼티를 추가
build.gradle
	// WebMVC 설정의 경우
    implementation 'org.springframework.boot:spring-boot-starter-data-redis'
    //Webflux 설정의 경우
    implementation 'org.springframework.boot:spring-boot-starter-data-redis-reactive'
application.yml
spring:
  redis:
    host: 127.0.0.1
    port: 6379

Spring Boot 서버와 연동 완료

 

 

Sentinel mode

특징

  • 16 logical databases 제공 - 최대 16개의 서비스까지는 데이터를 분리하여 사용 가능 (예를 들면 세션을 서비스마다 따로 관리할 수 있음)
  • 중소 사이즈 프로젝트에 알맞음

설정

  • Redis 설치 폴더로 이동하여, sentinel.conf를 아래의 내용과 함께 추가 (이름은 대충 아무거나 상관 없음)
  • 추가한 설정 파일을 사용하여 sentinel 서비스를 추가
  • 귀찮아서 node와 sentinel 둘 다 패스워드 설정은 안함
sentinel.conf
port 26379

daemonize no

logfile "sentinel.log"

dir /Windows/Temp

sentinel monitor datapost 127.0.0.1 6379 2

sentinel down-after-milliseconds datapost 30000

sentinel parallel-syncs datapost 1

sentinel failover-timeout datapost 180000
sentinel 서비스를 추가
C:\Redis3>redis-server --service-install --service-name redis-sentinel ./sentinel.conf --sentinel

 

Sentinel 서비스 실행

설치가 끝나면 Win+R에서 services.msc를 실행시켜 redis-sentinel 항목을 더블클릭하여 "시작 유형"이 자동이 아니라면 자동으로 바꿔주고, "시작" 버튼을 눌러 서비스를 실행

서비스 등록 완료

 


참고 사항

Cluster mode

특징

  • high performance and linear scaling up to 1000 nodes: 수평적 스케일링을 가능하게 하여 넓은 범위에 빠른 데이터 공유가 가능 (일반적으로 3개 정도의 node를 세팅하며 클라우드 상에 물리적으로 여러 국가 간 서버를 두어 캐시를 공유하지 않는 이상 많은 node가 필요하진 않음)
  • 대형 사이즈 프로젝트에 알맞음

 

Cluster mode + Sentinel mode

특징

  • 양쪽의 장점을 모두 가지지만, 그만큼의 리소스가 필요로 함
  • 일반적으로 3 node cluster와 3 sentinel 구조를 가지며, node별 sentinel을 하나씩 갖는 구조가 아님을 주의
  • 물리적인 설치는 서버마다 1 node + 1 sentinel로 하지만, 논리적으로는 아래와 같음

출처 https://blog.devgenius.io/redis-topologies-d9e16a7fa8e0

  • 각기 node는 1마스터와 2서브로 이루어지며, 마스터에 문제가 생길 시 sentinel들이 상의하여 다음 마스터를 결정
  • 그런 이유로 node와 sentinel은 무조건 홀수로 구성
  • sentinel이 짝수이면 마스터 선택에 문제가 생기며, node가 짝수이면 마스터가 2개가 될 경우가 생김
  • 2마스터는 어플리케이션이 어디로 접속이 되는지 모르며, 결국 데이터가 분리되어 심각한 오류로 이어짐

'윈도우즈 개발 환경' 카테고리의 다른 글

Kafka  (0) 2023.03.22
Nginx  (0) 2023.03.22
Eclipse  (0) 2023.03.22