>데이터 베이스 >Redis >Redis 마스터-슬레이브 복제

Redis 마스터-슬레이브 복제

齐天大圣
齐天大圣원래의
2020-05-25 14:08:321402검색

mysql과 마찬가지로 redis도 마스터-슬레이브 복제 및 읽기-쓰기 분리를 지원하며 구성이 mysql보다 훨씬 간단합니다. Redis의 마스터-슬레이브 복제를 살펴보겠습니다.

복제 설정

기본적으로 Redis는 모두 마스터 노드입니다. 이제 마스터-슬레이브 복제를 활성화하는 방법을 살펴보겠습니다.

먼저 두 개의 Redis 서비스를 엽니다. 서로 다른 바인딩된 포트와 서로 다른 영구 파일을 제외하면 이 두 Redis 서비스는 동일한 구성을 갖습니다.

127.0.0.1:6379> keys *
1) "age"
2) "name"

127.0.0.1:6380> keys *
(empty list or set)

6379 이 Redis에는 현재 두 개의 키가 있으며 6380은 비어 있습니다. 6379를 마스터 노드로, 6380을 슬레이브 노드로 사용하여 6379와 6380 사이에 마스터-슬레이브 관계를 설정합니다.

복제를 설정하는 방법에는 두 가지가 있습니다.

  • 구성 파일 6380을 수정하고, 구성 파일에 Slaveof 127.0.0.1 6379를 추가한 다음, Redis 서비스를 다시 시작합니다.

  • 동적으로 수정하고, Slaveof 127.0을 직접 입력합니다. 0.1 6379

127.0.0.1:6380> slaveof 127.0.0.1 6379
OK
127.0.0.1:6380> keys *
1) "name"
2) "age"

복제가 성립되어 이제 6380 데이터와 6379 데이터가 일치하는 것을 볼 수 있습니다.

6379와 6380에서 각각 정보 복제 명령을 실행하면 관련 정보를 볼 수 있습니다.

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:1
……


127.0.0.1:6380> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
……

Disconnect 복제

Disconnect 복제 작업은 매우 간단합니다. 아무도 슬레이브를 실행하지 않으면 됩니다.

127.0.0.1:6380> slaveof no one
OK

또한 마스터 노드를 직접 전환할 수도 있습니다. 예를 들어, 이제 6380은 6370의 슬레이브 노드이고, 이제 6380은 6379의 마스터-슬레이브 관계를 끊고 6381과 새로운 복제 관계를 설정하려고 합니다. 그러면 6380은 127.0.0.1 6381의 슬레이브만 실행하면 됩니다.

하지만 마스터를 잘라낼 때는 주의가 필요합니다. 슬레이브 노드의 이전 데이터가 지워지고 새 마스터 노드의 데이터가 복사됩니다. 따라서 이전 데이터가 유용하고 백업되지 않은 경우에는 주요 작업을 수행할 수 없습니다.

비밀번호 확인

마스터 노드가 requirepass로 구성된 경우 슬레이브 노드는 masterauth를 설정해야 합니다

읽기 전용

기본적으로 슬레이브 노드는 읽기 작업을 수행하지만 읽기 작업을 수행할 수 없습니다. 쓰기 작업. 이는 매우 필요한 작업이므로 슬레이브 노드가 쓰기 작업을 수행하면 마스터 노드와 슬레이브 노드 간에 데이터 불일치가 발생하게 됩니다. 슬레이브 노드에서 쓰기를 원할 경우 구성 항목 Slave-read-only=no를 수정하면 됩니다.

애플리케이션 시나리오

Redis 복제에 대한 일반적인 애플리케이션 시나리오에는

  • 데이터 실시간 백업이 포함됩니다. 일반적으로 이 경우 슬레이브 노드에는 AOF 지속성이 하나만 활성화됩니다. 노드의 주요 작업은 실시간 데이터 백업입니다.

  • 페일오버, 마스터 노드가 실패하면 슬레이브 노드를 사용하여 시스템을 계속 실행할 수 있습니다.

  • 읽기와 쓰기를 분리하여 읽기가 많은 시나리오에 더 적합합니다. 작업 및 여러 슬레이브 노드가 읽기 작업을 수행합니다. 복제는 비동기식으로 이루어지기 때문에 슬레이브 노드로부터의 데이터가 지연될 수 있으며, 이는 개발 시 주의해야 할 사항입니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.