찾다
데이터 베이스RedisRedis의 마스터-슬레이브 복제에 대해 자세히 알아보기

Redis의 마스터-슬레이브 복제에 대해 자세히 알아보기

Dec 27, 2021 am 10:17 AM
redis마스터-슬레이브 복제

이 글에서는 Redis의 마스터-슬레이브 복제에 대해 소개하고, 기본 마스터-슬레이브 구성을 소개하며, 마스터-슬레이브 구성의 기능과 원리를 소개하겠습니다.

Redis의 마스터-슬레이브 복제에 대해 자세히 알아보기

Redis는 마스터-슬레이브 복제 기능을 지원합니다. Slaveof(Redis5 버전 이후에 Replicaof로 변경)를 실행하거나 구성 파일에서 Slaveof를 설정(Redis5 버전 이후에 Replicaof로 변경)하여 복제 기능을 활성화할 수 있습니다. [관련 권장 사항: Redis 동영상 튜토리얼]

  • 마스터 1개와 클러스터 2개

Redis의 마스터-슬레이브 복제에 대해 자세히 알아보기

  • 마스터 1개와 슬레이브 여러 개

Redis의 마스터-슬레이브 복제에 대해 자세히 알아보기

마스터-슬레이브 기본 구성

마스터 Redis 구성

Master Re dis 구성 기본적으로 수정할 필요가 없습니다. Redis에서 구성

Redis에서 구성

1. 관련 구성을 수정하세요

# salve的端口号
port 6380 

#把pid进程号写入pidfile配置的文件
pidfile /var/run/redis_6380.pid 

logfile "6380.log"  

#指定数据存放目录
dir /usr/local/redis‐5.0.3/data/6380 

#需要注释掉bind
#bind127.0.0.1(bind绑定的是自己机器网卡的ip,如果有多块网卡可以配多个ip,代表允许客户端通过机器的哪些网卡ip去访问,内网一般可以不配置bind,注释掉即可)
.

3. 마스터-슬레이브 복제 구성

#从本机master6379的redis实例复制数据,Redis5.0之前使用slaveof
replicaof 192.168.0.60 6379

#配置从节点只读
replica‐read‐only yes

4. 슬레이브 노드 시작

redis‐server redis.conf

5. 6379 인스턴스에서 데이터 쓰기를 테스트하고 6380이 작동하는지 확인합니다. 인스턴스는 새로 수정된 데이터를 적시에 동기화할 수 있습니다

redis‐cli ‐p 6380

마스터-슬레이브 구성

의 역할 읽기와 쓰기의 분리

하나의 마스터와 다중 슬레이브, 마스터-슬레이브 동기화

마스터가 쓰기를 담당 , 그리고 슬레이브는 읽기를 담당합니다

Redis의 성능과 처리량을 향상합니다

마스터-슬레이브 데이터 일관성 문제
  • 데이터 재해 허용
  • 슬레이브는 호스트의 백업입니다
호스트가 다운되었습니다. , 슬레이브는 읽을 수 있지만 쓸 수는 없습니다

기본적으로 호스트가 다운된 후에는 호스트가 슬레이브를 사용할 수 없습니다.

Sentinel은 마스터-슬레이브 전환을 실현하여 고가용성을 달성할 수 있습니다.
  • Redis 마스터의 작동 원리- 슬레이브
  • 마스터-슬레이브 복제 전체 복사
  • 슬레이브 Redis가 마스터 Redis에 처음 연결될 때만 전체 복사가 발생합니다. 단기 이력서라면 전체 복사가 될 수 있습니다. 부분 복사일 수도 있습니다.

Flowchart

1. 마스터 Redis와 긴 Socker 연결을 설정합니다.

Redis의 마스터-슬레이브 복제에 대해 자세히 알아보기

slaver는 마스터와 소켓 연결을 설정합니다.

Redis의 마스터-슬레이브 복제에 대해 자세히 알아보기slaver 관련 파일 이벤트 프로세서

이 프로세서는 R을 수신합니다. DB 파일(전체 복사), 마스터가 전송한 쓰기 명령을 수신(증분 복사)

    마스터 서버가 슬레이브 서버 소켓 연결을 수락한 후 해당 클라이언트 상태를 생성합니다. 슬레이브 서버가 마스터 서버의 클라이언트가 되는 것과 같습니다.

Redis의 마스터-슬레이브 복제에 대해 자세히 알아보기

  • Slaver가 Master에게 ping 명령을 보냅니다

Redis의 마스터-슬레이브 복제에 대해 자세히 알아보기1. Master가 정상적으로 처리할 수 있는지 확인합니다.

    • 마스터의 응답:
      • 1. 정상임을 나타내는 "퐁"을 보냅니다.
      • 2. 마스터가 비정상임을 나타내는 오류를 반환합니다.
      • 3.
      • 권한 확인
      • 마스터와 슬레이브가 정상적으로 연결된 후 권한 확인을 진행합니다
      • 마스터가 비밀번호(requirepass="")를 설정하지 않았으므로 설정할 필요가 없습니다. 비밀번호 (masterauth="")

        마스터는 비밀번호를 설정해야 하는 것(requirepass! =""), 비밀번호를 설정해야 하는 것(masterauth=마스터의 requirepass 값)
      또는 auth 명령

Redis의 마스터-슬레이브 복제에 대해 자세히 알아보기2. 마스터 Redis가 PSYNC 명령을 받습니다

  • PSYNC 명령 후에 bgsave 명령을 실행하면 마스터 Redis가 rdb를 보냅니다. 마스터 Redis가 rdb 스냅샷을 슬레이브 Redis로 보내면 마스터는 계속해서 클라이언트의 요청을 수신하여 메모리의 데이터 세트를 수정하고 relp 버퍼 캐시에 저장합니다.
    • 동기화 스냅샷 단계: 마스터가 스냅샷 RDB를 생성하여 슬레이브에 보내고, 슬레이브가 스냅샷을 로드하고 구문 분석합니다. 마스터는 또한 이 단계에서 생성된 새로운 쓰기 명령을 버퍼에 저장합니다.

    4. 슬레이브 노드는 rdb 스냅샷을 수신합니다

    슬레이브 노드는 rdb 스냅샷을 수신한 후 이전 데이터를 지우고 rdb 파일을 로드합니다

    5. 마스터 Redis는 버퍼 캐시 파일을 slave Redis

    쓰기 버퍼 동기화 단계: 마스터는 버퍼에 저장된 쓰기 작업 명령을 슬레이브에 동기화합니다.

    6. 슬레이브 노드는 버퍼 캐시 파일을 수신합니다

    슬레이브 노드는 버퍼 캐시 파일을 수신하고 버퍼 캐시 파일을 메모리에 로드합니다

    7. 마스터 Redis는 슬레이브 노드에 지속적으로 명령을 보냅니다. Socker 긴 연결

    Redis에서 마스터 Redis가 보낸 명령을 받아 현재 명령을 실행합니다

    Overview

    마스터를 위해 슬레이브를 구성하면 처음으로 슬레이브가 마스터에 연결되는지 여부에 관계없이 시간이 지나면 마스터가 데이터 복사를 요청하도록 PSYNC 명령을 보냅니다. PSYNC 명령을 받은 후 마스터는 백그라운드에서 데이터 지속성을 수행하고 bgsave를 통해 최신 RDB 스냅샷 파일을 생성합니다. 지속 기간 동안 마스터는 클라이언트 요청을 계속 수신하며 데이터를 수정할 수 있는 이러한 요청을 캐시합니다. 메모리에 설정합니다. 지속성이 완료되면 마스터는 RDB 파일 데이터 세트를 슬레이브에 보내고 슬레이브는 수신된 데이터를 유지하여 RDB를 생성한 다음 이를 메모리에 로드합니다. 그런 다음 마스터는 이전에 메모리에 캐시된 명령을 슬레이브에 보냅니다. 어떤 이유로 마스터와 슬레이브 간의 연결이 끊어지면 슬레이브는 자동으로 마스터에 다시 연결할 수 있습니다. 마스터가 여러 슬레이브 동시 연결 요청을 받으면 각 연결마다 한 번이 아닌 한 번만 지속된 다음 전송됩니다. 이 영구 데이터를 동시에 연결된 여러 슬레이브에 전달합니다.

    마스터-슬레이브 복제 부분 복사

    Redis의 마스터-슬레이브 복제에 대해 자세히 알아보기

    일반적인 과정은 전체 복사와 유사하므로 자세히 설명하지 않겠습니다.

    간단한 설명

    마스터와 슬레이브 연결이 끊어지고 다시 연결되면 일반적으로 전체 데이터가 복사본으로 만들어집니다. 그러나 redis 버전 2.8부터 redis는 부분 데이터 복제를 지원할 수 있는 PSYNC 명령을 사용하여 마스터와 데이터를 동기화합니다. 슬레이브와 마스터는 네트워크 연결이 끊겼다가 다시 연결된 후에만 부분 데이터 복제(전송 재개)를 수행할 수 있습니다. 마스터는 자신의 메모리에 데이터를 복사하기 위한 캐시 큐를 생성하여 가장 최근 기간의 데이터를 캐시합니다. 따라서 마스터와 모든 슬레이브는 복사된 데이터 첨자 오프셋과 마스터의 프로세스 ID를 유지합니다. 그 후, 슬레이브는 마스터에게 기록된 데이터 인덱스부터 시작하여 완료되지 않은 복제를 계속하도록 요청합니다. 마스터 프로세스 ID가 변경되거나 슬레이브 노드 데이터 오프셋이 너무 오래되어 더 이상 마스터의 캐시 대기열에 없으면 전체 데이터 복사가 수행됩니다. 마스터-슬레이브 복제(부분 복제, 중단점 재개) 흐름도:

    마스터-슬레이브 복제의 증분 동기화

    • Redis 증분 동기화는 주로 슬레이브가 초기화를 완료하고 시작할 때 마스터에서 발생하는 쓰기 작업을 나타냅니다. 슬레이브와 동기화하는 과정입니다.

    • 일반적으로 마스터가 쓰기 명령을 실행할 때마다 동일한 쓰기 명령을 슬레이브에 보내고 슬레이브가 이를 수신하여 실행합니다.

    마스터-슬레이브 복제의 하트비트 감지

    1. 마스터-슬레이브 서버의 연결 상태를 감지합니다.

    INFO 복제 명령을 전송하여 마스터-슬레이브 서버의 네트워크 연결 상태를 감지합니다. 마스터 서버의 경우, 마지막 명령이 마스터로 전송된 후 몇 초가 경과했는지 확인할 수 있습니다. lag 값은 0 또는 1 사이에서 점프해야 합니다. 1을 초과하면 마스터와 슬레이브 간의 연결에 결함이 있음을 의미합니다.

    2. 최소 슬레이브의 보조 구현

    Redis는 주 서버가 min-slaves-to-write 3(min-replicas-to-write 3) min-slaves 쓰기 명령을 실행하지 못하도록 구성할 수 있습니다. unsafe Conditions -max-lag 10 (min-replicas-max-lag 10) 위의 구성은 슬레이브 서버의 수가 3개 미만이거나, 슬레이브 서버 3대의 지연(lag) 값이 크거나 같은 경우를 의미합니다. 10초까지는 마스터 서버의 쓰기 명령 실행이 거부됩니다. 여기서 지연 값은 위의 INForeplication 명령의 지연 값입니다.

    3. 명령 손실 감지

    마스터 서버에서 슬레이브 서버로 전송된 쓰기 명령이 네트워크 장애로 인해 중간에 손실된 경우 슬레이브 서버가 마스터 서버로 REPLCONF ACK 명령을 보내면 마스터 서버는 슬레이브 서버의 현재 상태를 확인합니다. 복제 오프셋이 자신의 복제 오프셋보다 작으면 마스터 서버는 슬레이브가 제출한 복제 오프셋을 기반으로 복제 백로그 버퍼에서 슬레이브 서버의 누락된 데이터를 찾습니다. 서버로 전송하고 데이터를 슬레이브 서버로 다시 보냅니다. (재발급) 네트워크는 지속적으로 증분식으로 동기화됩니다. 네트워크 연결이 끊어졌다가 다시 연결되면

    전체 복사인지 부분 복사인지 판단하는 방법

    Redis의 마스터-슬레이브 복제에 대해 자세히 알아보기

    클라이언트가 saveof를 보낸 후 처음 복사되었는지 여부를 판단하고 일치하지 않으면 전체 복사를 수행합니다. , runid offset offset으로 판단하여 일치하면 부분 복사하고, 일치하지 않으면 전체 복사를 합니다.

    더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 비디오를 방문하세요! !

위 내용은 Redis의 마스터-슬레이브 복제에 대해 자세히 알아보기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 掘金社区에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
Redis는 SQL 또는 NOSQL 데이터베이스입니까? 대답이 설명되었습니다Redis는 SQL 또는 NOSQL 데이터베이스입니까? 대답이 설명되었습니다Apr 18, 2025 am 12:11 AM

redisisclassifiedasanoSqldatabaseBecauseItuseSakey-valuedatamodelinsteadofThraditionalRelationalDatabasemodel.Itoffersspeedandflexibility, makingIdealforreal-timeApplicationsandcaching, butitmaynotbesuitableforscenariosrequiringstrictaintetaintetaintetaintetaintetaintetaintegry

REDIS : 응용 프로그램 성능 및 확장 성 향상REDIS : 응용 프로그램 성능 및 확장 성 향상Apr 17, 2025 am 12:16 AM

Redis는 데이터를 캐싱하여 분산 잠금 및 데이터 지속성을 구현하여 응용 프로그램 성능 및 확장 성을 향상시킵니다. 1) 캐시 데이터 : Redis를 사용하여 데이터 액세스 속도를 향상시키기 위해 자주 액세스하는 데이터를 캐시합니다. 2) 분산 잠금 : Redis를 사용하여 분산 된 잠금 장치를 구현하여 분산 환경에서 작동의 보안을 보장합니다. 3) 데이터 지속성 : 데이터 손실을 방지하기위한 RDB 및 AOF 메커니즘을 통한 데이터 보안을 보장합니다.

Redis : 데이터 모델과 구조 탐색Redis : 데이터 모델과 구조 탐색Apr 16, 2025 am 12:09 AM

Redis의 데이터 모델 및 구조에는 5 가지 주요 유형이 포함됩니다. 1. 문자열 : 텍스트 또는 이진 데이터를 저장하는 데 사용되며 원자 연산을 지원합니다. 2. 목록 : 정렬 된 요소 컬렉션, 대기열 및 스택에 적합합니다. 세트 : 세트 작동을 지원하는 비 순차 고유 요소 세트. 4. 순서 세트 (SortedSet) : 순위에 적합한 점수가있는 고유 한 요소 세트. 5. 해시 테이블 (HASH) : 객체를 저장하는 데 적합한 키 값 쌍 모음.

REDIS : 데이터베이스 접근 방식을 분류합니다REDIS : 데이터베이스 접근 방식을 분류합니다Apr 15, 2025 am 12:06 AM

Redis의 데이터베이스 방법에는 메모리 인 데이터베이스 및 키 값 저장소가 포함됩니다. 1) Redis는 메모리에 데이터를 저장하고 빠르게 읽고 쓰고 있습니다. 2) 키 값 쌍을 사용하여 데이터를 저장하고 캐시 및 NOSQL 데이터베이스에 적합한 목록, 컬렉션, 해시 테이블 및 주문 컬렉션과 같은 복잡한 데이터 구조를 지원합니다.

왜 Redis를 사용합니까? 혜택과 장점왜 Redis를 사용합니까? 혜택과 장점Apr 14, 2025 am 12:07 AM

Redis는 빠른 성능, 풍부한 데이터 구조, 고 가용성 및 확장 성, 지속성 기능 및 광범위한 생태계 지원을 제공하기 때문에 강력한 데이터베이스 솔루션입니다. 1) 매우 빠른 성능 : Redis의 데이터는 메모리에 저장되며 동시성이 높고 대기 시간이 낮은 응용 프로그램에 적합한 빠른 읽기 및 쓰기 속도를 가지고 있습니다. 2) 풍부한 데이터 구조 : 다양한 시나리오에 적합한 목록, 컬렉션 등과 같은 여러 데이터 유형을 지원합니다. 3) 고 가용성 및 확장 성 : 마스터 슬레이브 복제 및 클러스터 모드를 지원하여 고 가용성 및 수평 확장 성을 달성합니다. 4) 지속성 및 데이터 보안 : 데이터 지속성은 RDB 및 AOF를 통해 달성되어 데이터 무결성 및 신뢰성을 보장합니다. 5) 광범위한 생태계 및 지역 사회 지원 : 거대한 생태계와 활동적인 커뮤니티,

NOSQL 이해 : Redis의 주요 기능NOSQL 이해 : Redis의 주요 기능Apr 13, 2025 am 12:17 AM

Redis의 주요 기능에는 속도, 유연성 및 풍부한 데이터 구조 지원이 포함됩니다. 1) 속도 : Redis는 메모리 내 데이터베이스이며, 읽기 및 쓰기 작업은 거의 순간적이며 캐시 및 세션 관리에 적합합니다. 2) 유연성 : 복잡한 데이터 처리에 적합한 문자열, 목록, 컬렉션 등과 같은 여러 데이터 구조를 지원합니다. 3) 데이터 구조 지원 : 다양한 비즈니스 요구에 적합한 문자열, 목록, 컬렉션, 해시 테이블 등을 제공합니다.

REDIS : 기본 기능을 식별합니다REDIS : 기본 기능을 식별합니다Apr 12, 2025 am 12:01 AM

Redis의 핵심 기능은 고성능 인 메모리 데이터 저장 및 처리 시스템입니다. 1) 고속 데이터 액세스 : Redis는 메모리에 데이터를 저장하고 마이크로 초 수준 읽기 및 쓰기 속도를 제공합니다. 2) 풍부한 데이터 구조 : 문자열, 목록, 컬렉션 등을 지원하며 다양한 응용 프로그램 시나리오에 적응합니다. 3) 지속성 : RDB 및 AOF를 통해 디스크에 데이터를 지속하십시오. 4) 구독 게시 : 메시지 대기열 또는 실시간 통신 시스템에서 사용할 수 있습니다.

Redis : 인기있는 데이터 구조에 대한 안내서Redis : 인기있는 데이터 구조에 대한 안내서Apr 11, 2025 am 12:04 AM

Redis는 다음을 포함하여 다양한 데이터 구조를 지원합니다. 1. String, 단일 값 데이터 저장에 적합합니다. 2. 큐 및 스택에 적합한 목록; 3. 비면성 데이터 저장에 사용되는 세트; 4. 순서, 순위 목록 및 우선 순위 대기열에 적합한 순서 세트; 5. 해시 테이블, 객체 또는 구조화 된 데이터를 저장하는 데 적합합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.