[Redis] 클러스터 구성하기

기훈·2024년 4월 16일

Redis

목록 보기
4/12

master 3개 replica 3개 총 6개의 클러스터를 구성 한 후 노드를 추가하는 작업을 진행 해보자

1. 포트를 이름으로 디렉토리를 만들고 각각 디렉토리에 conf파일을 설정한다.
(clster-enabled 옵션을 yes로 변경하고 port를 7000부터 7005번까지 명시해준다)


2. redis-server ./redis-{포트명}.conf 명령어 실행

(6개의 터미널에서 각각의 포트로 레디스 서버를 실행한 모습)


3. 명령어를 통해 클러스터를 구성한다

redis-cli --cluster create localhost:7000 localhost:7001 localhost:7002 localhost:7003 localhost:7004 localhost:7005 --cluster-replicas 1

  1. redis-cli: Redis 서버와 통신하기 위한 명령줄 인터페이스 도구.
  2. --cluster create: 새로운 Redis 클러스터를 생성하는 옵션.
  3. localhost:7000~7005: 클러스터를 구성할 여섯 개의 Redis 노드 주소
  4. --cluster-replica 1: 클러스터에서 각 마스터 노드당 하나의 레플리카(복제본) 노드를 설정.


(명령어 실행 후 yes 입력하면 노드 정보에 대한 내용이 터미널에 출력된다)


4. 마스터 노드에 key 설정

(7000번 노드에서는 set aa는 가능 하지만, aaa는 불가능 하다. 에러로그를 보면 aaa는 10439라는 Hash-Slot에 해당하고 그것은 7001번 노드가 담당하고 있다)


5. 마스터 노드(7000)에 해당하는 repica 노드(7003)에 접속하여 데이터를 읽어온다

(7000번의 replica 노드인 7003에 접속하여 readonly 모드를 실행하면 7000번에서 set한 데이터를 읽어올 수 있다)


6. fail-over

  • 7001번의 노드를 종료시킨다

    (사진과 같이 7001번 노드는 fail이 되고 replica였던 7004번 노드가 master로 승격했다)

    (7001번에서 실행했던 명령어를 7004번에서 실행할 수 있게 되었다 참고로 7001번이 다시 복구되고 master는 여전히 7004이다.)

7. 마스터 노드 추가하기

  • redis-cli --cluster add-node localhost:7006(새로운 노드 주소) localhost:7000(기존 노드들 중 한개의 주소) 명령어를 입력한다.

    (마스터 노드로 추가된 모습을 볼 수 있다)

8. replica 추가하기

  • redis-cli --cluster add-node localhost:7007(새로운 노드 주소) localhost:7006(대상 마스터 노드의 주소) --cluster-slave
    7006번의 replica 노드로 7007이 추가 되었다

0개의 댓글