본문 바로가기

좋아하는 것_매직IT/9.redis

26.Redis, 레디스 복제에 대해서 알아볼까요? 단일 복제는 ? ^^

반응형

단일복제

  • 가장 기본적인 클러스터 구성으로 master 노드 와 slave 노드 하나로 구성됨.
    • master 노드에서 변경이 발생하면, slave 노드에 데이터 변경사항이 기록됨.
    • but, slave 노드의 데이터가 변경되면, master 노드는 해당 변경사항을 감지하지 못함.
      • 즉, slave 노드의 데이터가 변경이 일어나는 순간 데이터의 정합성이 무너짐.
      • 다시말해서, 절대로 slave 노드에서는 데이터의 변경을 수행하지 않아야함.
    • 구성도
    • Redis 복제 및 동기화

단일복제 클러스터 구성

  • 2개의 레디스 인스턴스 실행, 실행 시 환경설정 변경 및 확인
    • master 는 6300 port 로 기동 / slave 는 6301 port 로 기동 하는 설정.
    • 스냅샷 파일의 이름도 port 와 동일하게 설정함.
      • 관리상 편의성을 위해서 port 와 동일하고 설정.
    • master 구성(master.conf 파일)

  • slave 구성(slave.conf 파일)

단일복제 클러스터의 특징 및 동기화 과정 설명.

  • 클라이언트가 master노드와 slave 노드에 각각 쓰기/읽기 연산을 분할하여 호출해야 함.
    • 클라이언트 애플리케이션 레벨에서 각각 master 노드와 slave 노드를 인지하고 있어야 한다는 의미임.
    • 결과적으로, 클라이언트 애플리케이션의 복잡도가 증가함.
  • slave 노드에 쓰기연산을 수행하면 데이터를 정상적으로 기록되지만 master 노드와 정합성이 깨짐.
    • 즉, master / slave 간 데이터의 불일치 발생함.
  • 레디스 클러스터는 master/slave 노드의 데이터 동기화를 위하여 master 노드가 받은 쓰기 연산 명령을 slave 노드로 전달함.
    • 즉 slave 가 master 에서 수신된 명령을 수행하게되고, maste/slave 간 동기화가 이루어짐.

레디스 기동 명령

  • master 기동
    • [root@server01:/root/pkg/redis/redis-5.0.5/src]$ ./redis-server ../cluster/master.conf 
      •  
  • slave 기동
    • [root@server01:/root/pkg/redis/redis-5.0.5/src]$ ./redis-server ../cluster/slave.conf

레디스 클러스터 확인

  • master 노드 복제상태 확인
    • master 노드 실행
    • master 노드에 접속해서 복제 상태 확인 (현재 slave 노드 는 0개, slave 노드 기동전이므로...)
  • slave 노드 복제상태 확인
    • slave 노드 기동
      • slave 노드 기동 시 master 노드로 접속함을 확인
      • master 노드에서 slave 노드가 접속함을 확인.
      • slave 노드 접속 후 master 노드복제상태 확인
          • connected_slaves : 1 로 증가됨을 확인 
      • slave 노드에서 복제상태 확인

결론

  • Redis 는 master/slave 구조의 단일 구성으로 클러스터 구성이 가능함.
  • Redis 환경설정 각각 변경 및 세팅함
    • mater 
    • slave 
728x90
300x250