본문으로 바로가기

4. REDIS Sentinel

category DB/REDIS 2019. 7. 24. 17:15

이전 글

https://javannspring.tistory.com/256

 

1. 레디스 설치 및 환경설정

1. 레디스 소개 (1) 레디스란? REDIS (REmote Dictionary Server)는 메모리 기반의 “키-값” 구조 데이터 관리 시스템입니다. 모든 데이터를 메모리에 저장하여 빠른 Read, Write 속도를 보장합니다...

javannspring.tistory.com

https://javannspring.tistory.com/257

 

2. REDIS 실행 및 명령어

(1) 레디스 서버 실행 # src/redis-server redis.conf (redis.conf 파일을 사용해서 redis-server 실행) (2) 레디스 서버 접속 # redis-cli –p 6379 (기본포트 6379 <- redis.conf 파일에서 변경 가능) 127..

javannspring.tistory.com

https://javannspring.tistory.com/258

 

3. 레디스 Replication (Master-Slave)

(1) 레디스 Replication 설명 * 복제란 레디스의 데이터를 실시간으로 다른 레디스 노드에 복사하는 작업 * 서비스를 제공하던 첫 번째 레디스 노드가 다운되더라도, 두 번째 레디스 노드가 이어서 서비스를 제공..

javannspring.tistory.com

 

 

1) 마스터 다운 감지

2) 마스터 후보 선택

3) 마스터로 승격

4) 동기화

5) 클라이언트에게 알림

6) 클라이언트 : 새 마스터로 접속

 

(1) 센티널 주요 기능

 

* 모니터링 Monitoring : 센티널은 레디스 마스터, 복제들을 제대로 동작하는지 지속적으로 감시합니다.

* 자동 장애조치 Automatic Failover : 센티널은 레디스 마스터가 예기치 않게 다운되었을 때 복제를 새로운 마스터로 승격시켜 줍니다.   그리고 복제가 여러 대 있을 경우 이 복제들이 새로운 마스터로 부터 데이터를 받을 수 있도록 재 구성하고, 다운된 마스터가 재 시작했을 때 복제로 전환되어 새로운 마스터를 바라볼 수 있도록 합니다.

* 알림 Notification : 센티널은 감시하고 있는 레디스 인스턴스들이 failover 되었을 때 Pub/Sub으로 Application(client)에게 알리거나 shell script로 관리자에게 이메일이나 SMS로 알릴 수 있습니다.

 

(2) 센티널 설정

sentinel.conf 에서 센티널을 설정합니다.

port <sentinel port>

daemonize yes

sentinel monitor mymaster <master ip> <master port> <quorum>

(quorum 2이면 2대 이상 센티널에서 오류가 인식됐을 때 장애조치,

현재는 센티널이 1대이므로 1로 설정)

 (3) 센티널 실행

 

$ src/redis-sentinel   sentinel.conf

$ redis-cli –p 16000

 

$ info sentinel 명령어로 sentinel이 모니터링 하고 있는 레디스 서버 정보를 확인할 수 있습니다.

 

현재 6379 레디스를 마스터로 모니터링 하고 있습니다.

6379 레디스를 shutdown 시켜보면 자동으로 두 번째 6002 레디스를 모니터링 함을 볼 수 있습니다.

 

(4) 센티널 명령어

 

명령어

설명

예시

INFO

마스터의 정보를 간략히 조회

> info sentinel

ROLE

서버의 역할(sentinel/master/slave)과 부가 정보를 조회

> role

1) "sentinel"

2) 1) "mymaster01"

    2) "mymaster02"

    3) "mymaster03"

MONITOR

지정한 마스터에 대한 모니터링 시작

> sentinel monitor master7000 192.168.56.102 7000 2

OK

REMOVE

지정한 마스터에 대한 모니터링 중지

> sentinel remove master7000

OK

MASTERS

센티널이 모니터링하고 있는 마스터의 정보 조회

> sentinel masters

1)  1) "name"

    2) "mymaster01"

    3) "ip"

    4) "127.0.0.1"

    5) "port"

    6) "7121"

    7) "runid"

    8) "6b926c736c1ba33f916135d4c665e1193836f01e"

REPLICAS

지정한 마스터의 슬레이브 정보 조회

> sentinel replicas mymaster01

1)  1) "name"

    2) "127.0.0.1:7122"

    3) "ip"

    4) "127.0.0.1"

    5) "port"

    6) "7122"

    7) "runid"

    8) "a632b72b9565038b888ed5e8eac31117b860be4e"

SENTINELS

지정한 마스터를 모니터링하는 다른 센티널에 대한 정보 조회

> sentinel sentinels mymaster01

1)  1) "name"

    2) "40ebf60db9dc4385cf404903e1db6c111d14c336"

    3) "ip"

    4) "127.0.0.1"

    5) "port"

    6) "7112"

    7) "runid"

    8) "40ebf60db9dc4385cf404903e1db6c111d14c336"

 

RESET

센티널의 상태 정보를 초기화

> sentinel reset mymaster01

(integer) 1

FAILOVER

강제로 장애조치(failover)를 진행

> sentinel failover Xmaster

OK

SET

센티널 설정을 변경

> sentinel set Xmaster <option> <value>

<ex>

* parallel-syncs count

명령을 내릴 슬레이브 개수 설정

* quorum count

장애조치를 판단할 센티널 오류감지 개수 설정

* down-after-milliseconds milliseconds

서버 다운 여부를 판단할 기준시간 설정. Default : 30s

 

'DB > REDIS' 카테고리의 다른 글

Redis Cache  (0) 2023.08.08
3. REDIS Replication (Master-Slave)  (0) 2019.07.24
2. REDIS 실행 및 명령어  (0) 2019.07.24
1. REDIS 설치 및 환경설정  (0) 2019.07.24