이 기사에서는 Redis에 대한 관련 지식을 제공합니다. Redis에는 세 가지 클러스터 모드가 있으며 그 중 마스터-슬레이브가 가장 일반적인 모드입니다. 오늘 이 기사를 통해 Redis의 세 가지 클러스터 모드에 대해 소개하겠습니다. 관심 있는 친구들은 함께 참여해 보세요. 모두에게 도움이 되기를 바랍니다.
추천 학습: Redis 비디오 튜토리얼
세 가지 클러스터 모드
- Redis에는 세 가지 클러스터 모드가 있으며 그 중 마스터-슬레이브가 가장 일반적인 모드입니다.
- Sentinel Sentinel 모드는 마스터-슬레이브 복제 클러스터의 호스트가 다운된 후 마스터-슬레이브 전환의 복잡성을 보완하기 위해 발전되었습니다. 이름에서 알 수 있듯이 Sentinel은 모니터링에 사용됩니다. 주요 기능은 마스터-슬레이브 클러스터를 모니터링하고, 마스터와 슬레이브 간을 자동으로 전환하고, 클러스터 장애 조치를 완료하는 것입니다.
- 클러스터 모드는 Redis에서 공식적으로 제공하는 클러스터 모드입니다. 샤딩 기술을 사용하여 고가용성, 읽기 및 쓰기 분리를 달성할 뿐만 아니라 진정한 분산 스토리지를 구현합니다.
1. 마스터-슬레이브 복제
redis 마스터-슬레이브 복제
1. reids 마스터-슬레이브 모드
redis 복제는 두 부분으로 나누어집니다. 작업 동기화(SYNC)) 및 명령 전파
동기화(SYNC)는 슬레이브 서버의 상태를 마스터 서버와 일치하도록 업데이트하는 데 사용됩니다. 우리말로는 메인서버의 데이터를 서버로부터 적극적으로 얻는다는 뜻이다. 데이터를 일관되게 유지하세요. 구체적인 구현은 마스터 서버가 SYNC 명령을 받은 후 RDB 스냅샷 파일을 생성한 다음 이를 슬레이브 서버로 보내는 것입니다.
명령 전파(command propagate)는 마스터 서버 데이터가 수정되어 마스터와 슬레이브가 불일치한 후 슬레이브 서버가 마스터 서버 상태와 일치하도록 명령을 전파하는 데 사용됩니다. 현지어로 설명하면 마스터 서버가 클라이언트의 데이터 수정 명령을 받은 후 데이터베이스 데이터가 변경되고 해당 명령이 캐시된 다음 캐시된 명령이 슬레이브 서버로 전송되어 로드되어 마스터-슬레이브 데이터 일관성을 달성한다는 것입니다. 캐시된 명령 이를 명령 전파라고 합니다.
- 동기화와 명령 전파의 두 가지 복제 작업이 있는 이유: 동기화 작업만 있는 경우 슬레이브 서버가 마스터 서버에 SYNC 명령을 보내면 마스터 서버는 RDB 스냅샷 파일 생성 시 클라이언트의 명령 수정을 계속 수신하게 됩니다. . 데이터 상태. 데이터의 이 부분이 슬레이브 서버와 통신할 수 없으면 마스터-슬레이브 데이터가 일치하지 않습니다. 이때 마스터 서버는 슬레이브 서버로부터 SYNC 명령을 수신한 후 RDB 스냅샷 파일을 생성하고 이 기간 동안 수신한 명령을 캐시한 후 명령 전파 작업을 이용하여 슬레이브 서버로 전송합니다. . 마스터-슬레이브 데이터 일관성을 달성합니다.
-
- 3. Redis 마스터-슬레이브 복제 원칙
위에서 Redis 복제의 두 가지 작업을 소개했으며, Redis 마스터-슬레이브 복제는 동기화 및 명령 전파를 기반으로 공식적으로 구현됩니다. 다음 두 그림은 Redis 복제 과정을 보여줍니다.
4. Redis 마스터-슬레이브 복제의 장점과 단점
장점:
1. 단일 시스템 오류 해결 2. 마스터-슬레이브 복제 중에 마스터와 슬레이브 모두 비차단 상태이며 계속 사용할 수 있습니다. 단점:
1. 마스터 다운타임 동안 호스트를 수동으로 전환해야 합니다. 동시에 일부 데이터는 슬레이브 서버와 제때에 동기화할 수 없어 데이터 불일치가 발생합니다(수동 개입 필요). .슬레이브가 다운된 후 여러 슬레이브 복구 후 다수의 SYNC 동기화로 인해 마스터 IO 압력이 두 배로 증가합니다(시작 시간을 수동으로 피할 수 있음)
3.
요약:
redis 마스터-슬레이브 복제의 장점은 주로 가용성 향상입니다. 단점
2. Sentinel 모드
Sentinel Sentinel Sentinel 소개
Sentinel은 본질적으로 특수 모드에서 실행되는 Redis 인스턴스입니다. 프로세스와 작업이 일반적인 Redis와 다르며, 본질적으로 별도의 프로세스입니다.
Sentinel은 Redis를 위한 고가용성 솔루션입니다. 하나 이상의 Sentinel 인스턴스(인스턴스)로 구성된 Sentinel 시스템(시스템)은 원하는 수의 마스터 서버는 물론 이러한 마스터 서버 아래의 모든 슬레이브 서버를 모니터링할 수 있습니다. 마스터 서버가 오프라인 상태가 되면 자동으로 슬레이브 서버에서 마스터 서버로 전환할 수 있습니다.
1. Sentinel 시스템
다음 그림은 간단한 Sentinel 시스템 아키텍처 다이어그램입니다. 여기서 server1은 Redis 마스터 서버이고 server2/3/4는 Redis 슬레이브 서버입니다. 위의 마스터-슬레이브 복제는 마스터-슬레이브 일관성을 달성하기 위해 마스터와 슬레이브 간에 사용됩니다. Sentinel 시스템은 전체 마스터-슬레이브 클러스터를 모니터링합니다.
2. Sentinel 페일오버
Sentinel 시스템은 Server1의 메인 서버가 오프라인임을 감지하면 server2/3/4의 복제를 종료합니다.
동시에 Sentinel은 server2를 메인 서버로 업그레이드하고, server3/4는 새로운 메인 서버에서 복제합니다. 동시에 server1이 다시 온라인 상태가 될 때까지 기다립니다.
Sentinel 시스템은 적극적으로 메인 서비스를 슬레이브 서버로 다운그레이드하고 슬레이브 서버를 마스터 서버로 업그레이드할 수도 있습니다.
2.1. Sentinel 모니터링 프로세스
Sentinel 모니터링 클러스터 프로세스:
- Command Sentinel은 Redis 서버를 실행 상태로 되돌리는 명령을 보냅니다. 게시 및 구독 마스터 서버의 상태가 변경되면 Sentinel은
- 게시 및 구독 모드를 통해 다른 슬레이브 서버에 알립니다.
2.2. Sentinel 장애 조치
Sentinel 시스템의 Sentinel 인스턴스는 1초마다 PING 명령을 클러스터에 보냅니다.
2. 클러스터의 인스턴스 인스턴스 시간이 밀리초 이후 다운되면 PING 명령을 보내는 Sentinel 인스턴스는 주관적으로 오프라인이 됩니다- 3 그러면 언제 객관적으로 오프라인이 될까요? Sentinel 시스템의 다른 인스턴스는 클러스터의 인스턴스 감독자가 오프라인인지 확인해야 합니다.
- 마스터 서버가 주관적 오프라인으로 표시되면 Sentinel 시스템에서 마스터를 모니터링하는 Sentinel 프로세스는 마스터가 감독자 오프라인 상태로 진입하는지 여부를 초당 한 번씩 확인해야 합니다.
- 4 Sentinel 인스턴스가 충분한 경우(구성에 따라 다름) ) 마스터가 감독 오프라인에 진입한 것을 확인하면 마스터가 객관적으로 오프라인으로 표시됩니다.
-
3. Sentinel의 장점과 단점
장점:
1. Sentinel은 마스터-슬레이브 복제의 장점을 가지고 있습니다. -슬레이브 전환 및 실패로 인해 클러스터의 가용성이 높아집니다.
단점:
1. Redis는 온라인 확장을 지원하기 어렵고 온라인 확장이 더 복잡합니다.
요약:
sentinel은 주로 Redis 마스터-슬레이브 클러스터를 모니터링하고 Redis 마스터-슬레이브 클러스터의 가용성을 향상시키는 데 사용됩니다.
3. 클러스터 모드
redis 클러스터
1. reids 클러스터
Redis 클러스터는 서버 샤딩 기술이며, Redis 버전 3.0이 정식 출시되었습니다.
Sentinel은 기본적으로 고가용성을 구현했지만 각 머신마다 동일한 콘텐츠를 저장하므로 메모리가 낭비되므로 Redis Cluster는 분산 스토리지를 구현합니다. 각 시스템 노드에는 서로 다른 콘텐츠가 저장됩니다.
2. Redis 클러스터 데이터 샤딩은 16384개의 해시 슬롯을 사용합니다. 각 키는 CRC16 검증을 통과한 후 모듈로 16384입니다.
redis 키에 액세스하면 redis는 CRC16 알고리즘을 기반으로 결과를 얻은 다음 결과의 나머지 부분과 16384를 계산하고 이 값을 사용하여 해당 노드에서 데이터를 얻습니다.
이때 애플리케이션 클라이언트는 실제로 노드 중 하나에만 연결하면 되며 Redis 클러스터의 각 노드는 다른 노드의 슬롯 정보를 저장합니다. 이와 같이 액세스 키가 슬롯을 계산한 후, 슬롯 정보를 저장하여 구성으로부터 노드 정보를 얻은 후, 해당 노드를 검색하여 데이터를 얻는다.
3. Redis 클러스터 복제 원칙
redis-cluster 클러스터는 마스터-슬레이브 복제 모델을 도입합니다. 마스터 노드가 하나 이상 중단되면 슬레이브 노드가 활성화됩니다. 다른 마스터 노드가 마스터 노드 A를 ping할 때 마스터 노드의 절반 이상이 A와 통신하는 시간이 초과되면 마스터 노드 A가 다운된 것으로 간주됩니다. 마스터 노드 A와 슬레이브 노드 A1이 모두 다운되면 클러스터는 더 이상 서비스를 제공할 수 없습니다
권장 학습:Redis 비디오 튜토리얼
위 내용은 Redis의 세 가지 클러스터 모드 요약 및 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!