Redis Master/Slave 구성

Terror·2024년 11월 5일

최종 프로젝트

목록 보기
19/28

Overivew

  • NoSQL인 Redis를 Master/Slave로 이중화를 할 수 있습니다

redis.conf 파일 작성

replicaof master 6379

  • 루트 디렉토리에 conf 디렉토리 생성후
  • conf 디렉토리 안에 redis.conf 파일을 만들어준다

Docker-compose.yml

services:
  master:
    container_name: master
    image: redis
    ports:
      - 6379:6379
  slave-a:
    container_name: slave-a
    image: redis
    ports:
      - 7001:6379
    volumes:
      - ./conf:/usr/local/etc/redis/
    command: redis-server /usr/local/etc/redis/redis.conf
  slave-b:
    container_name: slave-b
    image: redis
    ports:
      - 7002:6379
    volumes:
      - ./conf:/usr/local/etc/redis/
    command: redis-server /usr/local/etc/redis/redis.conf
  • 3개의 redis를 도커 컴포즈로 띄어준다
docker-compose up

  • 성공하게 되면, replica에 성공했다는 알림 문구가 나온다

그럼 정말로 잘될까?

  • Master redis에 데이터를 넣어보고, Slave-redis에 정상적으로 들어가지는지 확인하여보자
  • 일단 터미널을 3개를 띄어놓고 테스트해보자
  • 먼저 좌측상단의 cmd창을 Master-redis로 전제하고 데이터를 넣어보겠다
docker exec -it master redis-cli
set masterKey "masterValue"
get masterKey

  • Master-redis에는 잘 저장되었고, 다음은 slave-a 에서 데이터가 잘 적재되었는지 확인하여보자
  • 굳 잘 저장된 모습이다, 다음은 slave-b도 확인하여보자
  • 잘 저장된 모습이다

slave-b redis에서 데이터를 삭제시켜보자

  • replica에서는 read-only만 가능하여 에러가 난 모습이다

Master redis에서 데이터를 삭제시켜보자

  • Master
  • Slave-a
  • Slave-b

참조 블로그

https://velog.io/@ililil9482/Redis-Master-Slave-%EA%B5%AC%EC%84%B1

profile
테러대응전문가

0개의 댓글