>  기사  >  데이터 베이스  >  Redis는 마스터-슬레이브 복제를 어떻게 구현합니까?

Redis는 마스터-슬레이브 복제를 어떻게 구현합니까?

PHPz
PHPz앞으로
2023-05-29 14:21:351681검색

    1. 마스터&슬레이브란?

    이를 마스터-슬레이브 복제라고 합니다. 호스트 데이터가 업데이트된 후 구성 및 정책에 따라 마스터/슬레이브 메커니즘에 자동으로 동기화됩니다. 마스터는 주로 쓰기용입니다. 주로 독서용이다.

    2. 무엇을 할 수 있나요?

    1. 읽기와 쓰기의 분리

    2.

    3. 게임 방법?

    1. 슬레이브(라이브러리)는 있지만 마스터(라이브러리)는 없습니다.

    2. 슬레이브 라이브러리 구성: 슬레이브of [메인 라이브러리 포트]

    • 보충: 슬레이브가 마스터에서 연결이 끊어질 때마다 , redis.conf 파일을 구성하지 않는 한 모두 다시 연결해야 합니다.

    • redis 마스터-슬레이브 정보를 보려면 정보 복제를 입력하세요.

    3. 구성 파일 세부 정보 수정

    - 여러 redis.conf 파일 복사

    Redis는 마스터-슬레이브 복제를 어떻게 구현합니까?

    - 포트 지정

    Redis는 마스터-슬레이브 복제를 어떻게 구현합니까?

    - 데몬화 켜기 yes

    Redis는 마스터-슬레이브 복제를 어떻게 구현합니까?

    - Pid 파일 이름

    Redis는 마스터-슬레이브 복제를 어떻게 구현합니까?

    -로그 파일 이름

    Redis는 마스터-슬레이브 복제를 어떻게 구현합니까?

    -Dump.rdb 이름

    Redis는 마스터-슬레이브 복제를 어떻게 구현합니까?

    4. 일반적으로 사용되는 3가지 트릭

    -마스터 1명과 서번트 2명

    Redis는 마스터-슬레이브 복제를 어떻게 구현합니까?

    마스터 1명, 슬레이브 2명, 슬레이브는 읽기만 가능 그러나 쓰기는 불가능합니다. 슬레이브가 마스터에서 연결이 끊어지면 마스터가 끊어진 후에도 이전 마스터-슬레이브 관계가 설정되기 전에 슬레이브를 다시 연결해야 하며 마스터를 다시 시작하면 복원될 수 있습니다. .

    - Passing on the fire

    Redis는 마스터-슬레이브 복제를 어떻게 구현합니까?

    이전 슬레이브는 다음 슬레이브의 마스터가 될 수 있습니다. 또한 슬레이브는 다른 슬레이브로부터 연결 및 동기화 요청을 받을 수도 있습니다. 그런 다음 슬레이브는 체인에 있는 다음 슬레이브의 마스터가 됩니다. , 마스터의 쓰기 압력을 줄이는 것이 효과적일 수 있습니다. 슬레이브 서버가 데이터 동기화를 위해 중간에 마스터 서버를 변경할 경우 기존 데이터는 삭제되고 최신 마스터 서버와의 동기화가 다시 이루어집니다.

    - 고객 반대

    마스터가 전화를 끊으면 슬레이브는 현재 Redis가 다른 마스터 Redis와 데이터를 동기화하는 것을 중지하고 마스터 Redis로 전환하기 위해 slaveof no one 명령을 입력할 수 있습니다.

    4. 복사 원리

    1. 슬레이브가 시작되고 마스터에 성공적으로 연결되면 마스터는 저장 프로세스를 시작하라는 명령을 수신하고 동시에 모든 것을 수집합니다. 데이터 세트 수정을 위한 명령을 수신하면 마스터는 전체 데이터 파일을 슬레이브로 전송하여 완전한 동기화를 완료합니다.

    3. 슬레이브 서비스는 데이터베이스 파일 데이터를 저장하고 로드합니다.

    4 , 증분 복제: 마스터는 동기화를 완료하기 위해 계속해서 새로 수집된 모든 수정 명령을 슬레이브에 전달합니다. 그러나 마스터가 다시 연결되는 한 전체 동기화(전체 복제)가 자동으로 수행됩니다. 실행.

    5. 센티넬 모드(sentinel)

    주로 안티 고객인 자동 버전입니다. 마스터 라이브러리에 결함이 있는지 여부를 백그라운드에서 모니터링할 수 있으며, 실패하면 슬레이브 라이브러리를 기본 라이브러리로 자동 변환합니다. 득표수에 대해서. 센티넬 그룹은 동시에 여러 마스터를 모니터링할 수 있습니다.

    사용 단계:

    1. 마스터의 redis.conf와 동일한 디렉터리에 새 sentinel.conf 파일을 생성합니다. 이름은 틀리지 않아야 합니다. 2. sentinel.conf 파일: ​​

    sentinel monitor 모니터링되는 데이터베이스의 이름(직접 이름 지정) IP 포트 1

    • 설명: 위의 마지막 숫자 1은 호스트가 전화를 끊은 후 슬레이브가 투표한다는 의미입니다. 누가 호스트를 맡을지 확인하려면 호스트가 투표 수를 얻은 후 호스트가 됩니다.

    • 3. 센티넬 모드 시작:

    명령 입력: redis-sentinel /myredis/sentinel.conf

    • 참고: 위 sentinel.conf 경로는 실제 상황에 따라 구성됩니다.

    • 6 . 복사된 단점

    • 대기 시간. 모든 쓰기 작업은 마스터에서 수행된 다음 슬레이브에 동기화되므로 시스템이 매우 바쁜 경우 마스터에서 슬레이브 시스템으로 동기화하는 데 일정한 지연이 있습니다. 더욱 심각해집니다. 슬레이브 머신 수가 증가하면 이 문제도 더욱 심각해집니다.

    Redis 마스터, 슬레이브 노드 배포 세부정보

    1. 마스터 하나와 슬레이브 하나, 두 개의 redis.conf 파일을 생성합니다.

    redis_6379.conf
    redis_6380.conf

    2. 마스터 conf 기본 구성

    bind 127.0.0.1
    port 6379
    protected-mode yes
    daemonize yes
    pidfile /var/run/redis_6379.pid
    logfile "/Data/apps/redis-3.2.12/logs/redis_6379.log"
    dbfilename dump_6379.rdb
    dir /Data/apps/redis-3.2.12/workplace
    requirepass paopao

    3. 시작합니다. master redis-server 프로세스에서

    bind 127.0.0.1
    port 6380
    protected-mode yes
    daemonize yes
    pidfile /var/run/redis_6380.pid
    logfile "/Data/apps/redis-3.2.12/logs/redis_6380.log"
    dbfilename dump_6380.rdb
    dir /Data/apps/redis-3.2.12/workplace
    slaveof 127.0.0.1 6379
    masterauth paopao

    5. 기타 관련 구성

    redis-server /Data/apps/redis-3.2.12/conf/redis_6379.conf
    redis-server /Data/apps/redis-3.2.12/conf/redis_6380.conf

    위 내용은 Redis는 마스터-슬레이브 복제를 어떻게 구현합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제