>  기사  >  데이터 베이스  >  Redis 클러스터 클러스터 소개

Redis 클러스터 클러스터 소개

尚
앞으로
2020-05-18 09:06:301886검색

master-salve 또는 sentinel 모드와 달리 클러스터와 이들의 가장 큰 차이점은 처음 두 개는 전체 저장소이므로 많은 메모리를 소비하고 배럴 효과가 있는 반면 클러스터 클러스터는 분산 저장소, 즉 각 Redis는 다양한 콘텐츠를 저장합니다.

Redis 클러스터 클러스터 소개

redis-cluster는 총 16384개의 해시 슬롯을 사용할 수 있도록 설계되었으며 각 마스터에는 슬롯의 일부가 할당됩니다. 배포 알고리즘은 다음과 같습니다. [hash_slot = crc16(key) mod 16384] }, 사용 가능한 키 {}개를 가져오세요. 그렇지 않으면 전체가 사용 가능한 키가 될 수 있습니다. 클러스터에는 최소 3개의 마스터와 3개의 슬레이브가 있어야 하며, 각 인스턴스는 서로 다른 구성 파일을 사용합니다.

Redis 클러스터 클러스터 소개

  1. 모든 Redis 노드는 서로 연결되어 있으며(PING-PONG 메커니즘) 전송 속도와 대역폭을 최적화하기 위해 내부적으로 바이너리 프로토콜이 사용됩니다.

  2. 노드 장애는 클러스터 노드 중 절반 이상이 장애를 감지한 경우에만 적용됩니다.

  3. 클라이언트는 중간 프록시 계층이 필요 없이 Redis 노드에 직접 연결됩니다. 클라이언트는 클러스터의 모든 노드에 연결할 필요가 없으며 클러스터에서 사용 가능한 노드에 연결하기만 하면 됩니다.

  4. redis-cluster는 모든 물리적 노드를 [0-16383] 슬롯에 매핑하고 클러스터는 노드슬롯value

redis-cluster 투표: 내결함성

을 유지 관리합니다. 1. 투표 프로세스에는 클러스터의 모든 마스터가 참여합니다. 절반 이상의 마스터 노드와 마스터 노드 간의 통신 시간이 초과되면(cluster-node-timeout) 현재 마스터 노드가 다운된 것으로 간주됩니다.

2. 언제 전체 클러스터를 사용할 수 없게 됩니까(cluster_state:fail)?

클러스터의 마스터가 하나라도 죽고 현재 마스터에 슬레이브가 없으면 클러스터는 실패 상태로 진입합니다. 클러스터의 슬롯 매핑 [0-16383]이 불완전할 때 상태가 실패합니다.

redis-3.0.0.rc1이 추가되었습니다. Cluster-require-full-coverage 매개변수는 기본적으로 꺼져 있습니다.

클러스터의 마스터 중 절반 이상이 끊기면 슬레이브 유무에 관계없이 클러스터는 실패 상태로 들어갑니다.

redis-cluster 아키텍처에서 redis-master 노드는 일반적으로 읽기 및 쓰기를 수신하는 데 사용되는 반면, redis-slave 노드는 일반적으로 해당 마스터와 동일한 슬롯 세트를 갖습니다. -master 실수로 실패하면 해당 슬레이브가 임시 redis-master로 업그레이드됩니다.

공식 Redis 문서에는 redis-cluster 아키텍처에 대한 설명이 있습니다. 클러스터 아키텍처에서 기본적으로 redis-master는 일반적으로 읽기 및 쓰기를 수신하는 데 사용되고 redis-slave는 백업에 사용됩니다. 요청이 슬레이브로 시작되면 처리를 위해 해당 키가 있는 마스터로 직접 리디렉션됩니다.

그러나 redis-cluster에서 잠재적으로 만료된 데이터를 읽는 것이 마음에 들지 않고 쓰기 요청에 관심이 없다면 readonly 명령을 통해 슬레이브를 읽을 수 있도록 설정한 다음 슬레이브를 통해 관련 키를 얻어 분리를 달성할 수도 있습니다. 읽기와 쓰기의.

더 많은 Redis 지식을 알고 싶다면 redis 입문 튜토리얼 칼럼을 주목해 주세요.

위 내용은 Redis 클러스터 클러스터 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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