기술나눔

6. Redis 마스터-슬레이브 클러스터 구축

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Redis 마스터-슬레이브 클러스터 구축

1. Redis 마스터-슬레이브 클러스터란 무엇입니까?

Redis의 마스터-슬레이브 클러스터는 "하나의 마스터와 다중 슬레이브" 읽기-쓰기 분리 클러스터입니다. 클러스터의 마스터 노드는 클라이언트의 읽기 및 쓰기 요청을 담당하고 슬레이브 노드는 클라이언트의 읽기 요청을 담당합니다. 클러스터를 읽기-쓰기 분리 모드로 설정해야 하는 이유는 주로 데이터베이스 클러스터의 경우 쓰기 작업 압력이 일반적으로 낮고 읽기 압력이 높기 때문입니다. 따라서 하나의 노드만 쓰기 요청 작업 처리를 담당합니다.

2. 의사 클러스터 구축 및 구성

단일 스레드 IO 모델을 사용하는 경우 프로세서 활용도를 높이기 위해 일반적으로 하나의 호스트에 여러 Redis를 설치하여 Redis 마스터-슬레이브 의사 클러스터를 구축합니다. 물론 의사 클러스터 시나리오는 주로 Redis 학습에 관한 것입니다.

아래에 구축할 읽기-쓰기 분리 의사 클러스터에는 마스터와 두 개의 슬레이브가 포함됩니다. 해당 포트 번호는 6380, 6381, 6382에 해당합니다.

2.1. redis.conf 파일을 복사합니다.

​ Redis 설치 디렉터리에서 Cluster라는 디렉터리를 mkdir로 지정합니다. 그런 다음 redis.conf 파일을 이 디렉터리에 복사합니다. 수정된 파일은 나중에 다른 구성 파일에 포함될 것이므로 각 Reids 노드의 동일한 공개 속성을 이 파일에 설정해야 합니다.

2.2. redis.conf 파일 수정

2.2.1、masterauth

​ 우리는 마스터-슬레이브 클러스터를 구축하고 싶고, 각 호스트가 마스터로부터 읽을 수 있기 때문에 비밀번호 확인 속성인 requirepass를 설정하는 것이 가장 좋습니다. 꼭 설정해야 하는 경우 각 호스트의 비밀번호를 동일한 값으로 설정해야 합니다. 이때 각 구성 파일에는 requirepass와 msterauth라는 두 개의 동일한 속성이 설정되어야 합니다. 그 중 requirepass는 현재 호스트 접속 비밀번호를 지정하는 데 사용되고, masterauth는 현재 슬레이브가 마스터에 있을 때 제출하는 접속 비밀번호를 지정하는 데 사용되며, 이는 마스터가 자신의 신원이 합법적인지 확인할 수 있도록 하는 데 사용됩니다.

2.2.2、repl-disable-tcp-nodelay
  1. tcp-nodelay란 무엇입니까?

    네트워크 대역폭을 줄이기 위해 TCP는 항상 데이터를 전송할 때 가능한 한 큰 데이터 블록을 전송하려고 한다는 것을 알아야 합니다. 따라서 TCP에서는 Nagle 알고리즘을 사용합니다. 이 알고리즘은 데이터를 패키징하여 전송하기 전에 특정 크기로 캐시합니다.

  2. repl-disable-tcp-nodelay 매개변수 구성:

    이 속성은 TCP 기능 tcp-nodelay를 비활성화하는 알고리즘을 설정하는 데 사용됩니다. yes로 설정하면 비활성화됩니다. 즉, 데이터를 일정 크기로 캐시한 후 전송합니다. 이때 마스터와 슬레이브 간의 통신은 지연되지만 사용되는 TCP 패킷 수는 줄어듭니다. 네트워크 대역폭은 더 적어집니다. 아니요는 그 반대입니다. 참고: 마스터-슬레이브 레벨이 많은 경우 데이터 지연을 방지하기 위해 no로 설정하는 것이 좋습니다.

2.3.특정구조

참고 기사:

한국어: http://t.csdnimg.cn/Fjyhw