Redis 클러스터 대. Sentinel 2014 년 5 월 12 일
다음 목록에는 Redis 클러스터링에 대한 Azure 캐시에 대한 일반적으로 질문에 대한 답변이 포함되어 있습니다.
Redis 인스턴스의 프리미엄 Azure 캐시에 대한 Redis 클러스터링 구성
Redis의 Azure 캐시는 Redis에서 구현 된 Redis 클러스터를 제공합니다. Redis 클러스터를 사용하면 다음과 같은 이점이 있습니다
- 여러 노드에서 데이터 세트를 자동으로 분할하는 기능.
- 노드의 하위 집합이 실패를 겪거나 나머지 클러스터와 통신 할 수 없을 때 작업을 계속하는 기능.
- 더 많은 처리량 : 파편 수를 늘리면 처리량이 선형 적으로 증가합니다.
- 더 많은 메모리 크기 : 파편 수를 늘리면 선형으로 증가합니다.
클러스터링은 클러스터 된 캐시에 사용할 수있는 연결 수를 증가시키지 않습니다. 프리미엄 캐시가있는 크기, 처리량 및 대역폭에 대한 자세한 내용은 올바른 계층 선택을 참조하십시오.
Azure에서 Redis Cluster는 각 샤드가 복제와 기본/복제 쌍이있는 기본/복제 모델로 제공됩니다.
Redis 용 Azure Cache는 이제 최대 30 개의 파편 (미리보기)을 지원합니다
Redis의 Azure Cache는 이제 클러스터 캐시의 경우 최대 30 개의 샤드를 지원합니다. 2 개의 복제본으로 구성된 클러스터 캐시는 최대 20 개의 파편을 지원할 수 있으며 3 개의 복제품으로 구성된 클러스터 캐시는 최대 15 개의 파편을 지원할 수 있습니다.
제한
- Redis 버전 4가있는 캐시의 샤드 제한은 10입니다.
- 클라우드 서비스 퇴직에 의해 영향을받는 캐시의 샤드 한도는 10입니다.
- 각 노드가 업데이트하는 데 약 20 분이 걸리면 유지 보수가 더 오래 걸립니다. 캐시가 유지 보수중인 동안 다른 유지 보수 작업이 차단됩니다.
클러스터링을 설정합니다
클러스터링이 활성화되었습니다 Redis를위한 새로운 Azure 캐시 캐시 생성 중 왼쪽에.
- 프리미엄 캐시를 만들려면 Azure 포털에 로그인하고 선택하십시오 리소스를 만듭니다. Azure Portal에서 캐시를 만드는 것 외에도 리소스 관리자 템플릿, PowerShell 또는 Azure CLI를 사용하여 만들 수도 있습니다. Redis 용 Azure 캐시 작성에 대한 자세한 내용은 캐시 작성을 참조하십시오.
- 에 새로운 페이지, 선택 데이터베이스 그런 다음 선택합니다 Redis 용 Azure 캐시.
- 에 새로운 Redis 캐시 페이지, 새 프리미엄 캐시 설정 구성.
환경 제안 된 가치 설명 DNS 이름 전 세계적으로 독특한 이름을 입력하십시오. 캐시 이름은 1 ~ 63 자 사이의 문자열이어야합니다. 문자열에는 숫자, 문자 또는 하이픈 만 포함 할 수 있습니다. 이름은 숫자 나 문자로 시작하고 끝나야하며 연속 하이픈을 포함 할 수 없습니다. 캐시 인스턴스 호스트 이름 될거야 .레 디스.은닉처.창.그물. 신청 드롭 다운하고 구독을 선택하십시오. Redis 인스턴스를위한이 새로운 Azure 캐시를 작성하는 구독. 리소스 그룹 드롭 다운 및 리소스 그룹을 선택하거나 선택하십시오 새로운 창조 새 리소스 그룹 이름을 입력하십시오. 캐시 및 기타 리소스를 생성 할 리소스 그룹의 이름. 모든 앱 리소스를 하나의 리소스 그룹에 넣으면 쉽게 관리하거나 삭제할 수 있습니다. 위치 드롭 다운하고 위치를 선택하십시오. 캐시를 사용할 다른 서비스 근처의 지역을 선택하십시오. 캐시 유형 프리미엄 기능을 구성하기 위해 프리미엄 캐시를 드롭 다운 및 선택하십시오. 자세한 내용은 Redis 가격에 대한 Azure Cache를 참조하십시오. 가격 계층은 캐시에 사용할 수있는 크기, 성능 및 기능을 결정합니다. 자세한 내용은 Redis 개요에 대한 Azure Cache를 참조하십시오. - 선택하십시오 네트워킹 탭 또는 선택하십시오 네트워킹 페이지 하단의 버튼.
- 에서 네트워킹 탭, 연결 방법을 선택하십시오. 프리미엄 캐시 인스턴스의 경우 공개 IP 주소 또는 서비스 엔드 포인트를 통해 또는 개인 엔드 포인트를 사용하여 개인적으로 공개적으로 연결할 수 있습니다.
- 선택하십시오 다음 : 고급 탭 또는 선택하십시오 다음 : 고급 페이지 하단의 버튼.
- 에서 고급의 프리미엄 캐시 인스턴스의 탭, 비 TLS 포트, 클러스터링 및 데이터 지속성의 설정을 구성합니다. 클러스터링을 활성화하려면 선택하십시오 할 수 있게 하다. 클러스터에 최대 10 개의 파편을 가질 수 있습니다. 선택 후 할 수 있게 하다, 슬라이더를 밀거나 1에서 10 사이의 숫자를 입력하십시오 샤드 수 그리고 선택하십시오 좋아요. 각 샤드는 Azure가 관리하는 1 차/복제 캐시 쌍이며, 캐시의 총 크기는 가격 책정 계층에서 선택한 캐시 크기에 파편 수를 곱하여 계산됩니다. 일단
독특한 질문 :
- Redis 클러스터 사용의 이점은 무엇입니까??
- 클러스터링이 클러스터 된 캐시에 사용할 수있는 연결 수를 증가시킬 수 있습니다?
- Redis의 Azure 캐시가 얼마나 많은 샤드 수는 이제 클러스터 된 캐시를 지원합니다?
- Redis 버전 4를 사용한 캐시의 해당 한계는 얼마입니까??
- 클라우드 서비스 퇴직에 의해 영향을받는 캐시의 해당 한계는 얼마입니까??
- 클러스터 된 캐시의 노드에 대한 유지 보수는 얼마나 걸립니까?
- Redis 인스턴스의 프리미엄 Azure 캐시에 대한 클러스터링을 설정하려면 어떻게해야합니까??
- Redis의 Azure 캐시에서 Redis 클러스터링의 한계는 무엇입니까??
- Redis의 Azure 캐시에서 프리미엄 캐시를 만드는 단계는 무엇입니까??
- 두 개의 복제본이있는 클러스터 캐시가 몇 개의 샤드 수?
- 3 개의 복제본을 지원하는 클러스터 된 캐시 수를 몇 개?
- Redis 클러스터의 각 샤드는 무엇을 나타냅니다?
- Redis의 Azure 캐시의 Redis 클러스터에서 복제는 어떻게 관리됩니까??
- Redis 용 Azure 캐시의 프리미엄 캐시에 연결하는 데 사용할 수있는 인증 방법?
- Redis의 Azure 캐시에서 캐시 크기 및 가격 계층을 선택할 때 어떤 요인을 고려해야하는 요소?
답변: Redis Cluster를 사용하면 여러 노드에서 데이터 세트를 자동으로 분할하고 노드의 하위 집합이 실패를 겪거나 나머지 클러스터와 통신 할 수없고 파편 수를 늘릴 때 더 많은 처리량과 메모리 크기를 달성 할 수있는 경우 작업을 계속할 수 있습니다.
답변: 아니요, 클러스터링은 클러스터 캐시에 사용할 수있는 연결 수를 증가시키지 않습니다.
답변: Redis의 Azure 캐시는 이제 클러스터 캐시의 경우 최대 30 개의 샤드를 지원합니다.
답변: Redis 버전 4가있는 캐시의 샤드 한계는 10입니다.
답변: 클라우드 서비스 퇴직에 의해 영향을받는 캐시의 샤드 한도는 10입니다.
답변: 클러스터 캐시의 노드 유지 보수는 업데이트하는 데 약 20 분이 걸립니다. 캐시가 유지 보수중인 동안 다른 유지 보수 작업이 차단됩니다.
답변: 클러스터링을 설정하려면 Azure Portal에서 캐시 생성 중에 활성화 할 수 있습니다. 적절한 캐시 유형을 선택하고 캐시 설정을 구성하며 고급 탭에서 클러스터링을 활성화해야합니다.
답변: 제한 사항에는 Redis 버전 4가있는 캐시의 경우 10 개, 클라우드 서비스 퇴직에 의해 영향을받는 캐시의 경우 10 개, 클러스터 된 캐시의 노드의 유지 보수 시간이 더 포함됩니다.
답변: 단계에는 Azure Portal에 로그인, 리소스 생성 선택, Redis 용 Azure 캐시 선택, 캐시 설정 구성, 적절한 네트워킹 옵션 선택 및 클러스터링과 같은 고급 설정 구성이 포함됩니다.
답변: 2 개의 복제본이있는 클러스터 캐시는 최대 20 개의 파편을 지원할 수 있습니다.
답변: 3 개의 복제본이있는 클러스터 캐시는 최대 15 개의 파편을 지원할 수 있습니다.
답변: 각 샤드는 Redis 클러스터의 Azure가 관리하는 1 차/복제 캐시 쌍을 나타냅니다.
답변: Redis의 Azure 캐시의 Redis 클러스터의 복제는 Azure에 의해 관리되며 각 샤드에는 1 차/복제 쌍이 있습니다.
답변: 공개 IP 주소 또는 서비스 엔드 포인트를 통해 또는 개인 엔드 포인트를 사용하여 공개적으로 Redis의 Azure 캐시에서 프리미엄 캐시에 연결할 수 있습니다.
답변: 캐시 크기 및 가격 계층은 캐시에 사용할 수있는 크기, 성능 및 기능을 결정합니다. 선택은 원하는 처리량, 메모리 크기 및 비용 고려 사항을 기반으로해야합니다. Azure Portal은 적절한 캐시 크기를 선택하고 가격 책정 계층에 대한 지침을 제공합니다.
Redis 클러스터 대. Sentinel 2014 년 5 월 12 일
다음 목록에는 Redis 클러스터링에 대한 Azure 캐시에 대한 일반적으로 질문에 대한 답변이 포함되어 있습니다.
Redis 인스턴스의 프리미엄 Azure 캐시에 대한 Redis 클러스터링 구성
Redis의 Azure 캐시는 Redis에서 구현 된 Redis 클러스터를 제공합니다. Redis 클러스터를 사용하면 다음과 같은 이점이 있습니다
- 여러 노드에서 데이터 세트를 자동으로 분할하는 기능.
- 노드의 하위 집합이 실패를 겪거나 나머지 클러스터와 통신 할 수 없을 때 작업을 계속하는 기능.
- 더 많은 처리량 : 파편 수를 늘리면 처리량이 선형 적으로 증가합니다.
- 더 많은 메모리 크기 : 파편 수를 늘리면 선형으로 증가합니다.
클러스터링은 클러스터 된 캐시에 사용할 수있는 연결 수를 증가시키지 않습니다. 프리미엄 캐시가있는 크기, 처리량 및 대역폭에 대한 자세한 내용은 올바른 계층 선택을 참조하십시오
Azure에서 Redis Cluster는 각 샤드가 복제와 기본/복제 쌍이있는 기본/복제 모델로 제공됩니다.
Redis 용 Azure Cache는 이제 최대 30 개의 파편 (미리보기)을 지원합니다
Redis의 Azure Cache는 이제 클러스터 캐시의 경우 최대 30 개의 샤드를 지원합니다. 2 개의 복제본으로 구성된 클러스터 캐시는 최대 20 개의 파편을 지원할 수 있으며 3 개의 복제품으로 구성된 클러스터 캐시는 최대 15 개의 파편을 지원할 수 있습니다.
제한
- Redis 버전 4가있는 캐시의 샤드 제한은 10입니다.
- 클라우드 서비스 퇴직에 의해 영향을받는 캐시의 샤드 한도는 10입니다.
- 각 노드가 업데이트하는 데 약 20 분이 걸리면 유지 보수가 더 오래 걸립니다. 캐시가 유지 보수중인 동안 다른 유지 보수 작업이 차단됩니다.
클러스터링을 설정합니다
클러스터링이 활성화되었습니다 Redis를위한 새로운 Azure 캐시 캐시 생성 중 왼쪽에.
- 프리미엄 캐시를 만들려면 Azure 포털에 로그인하고 선택하십시오 리소스를 만듭니다. Azure Portal에서 캐시를 만드는 것 외에도 리소스 관리자 템플릿, PowerShell 또는 Azure CLI를 사용하여 만들 수도 있습니다. Redis 용 Azure 캐시 작성에 대한 자세한 내용은 캐시 작성을 참조하십시오.
- 에 새로운 페이지, 선택 데이터베이스 그런 다음 선택합니다 Redis 용 Azure 캐시.
- 에 새로운 Redis 캐시 페이지, 새 프리미엄 캐시 설정 구성.
환경 제안 된 가치 설명 DNS 이름 전 세계적으로 독특한 이름을 입력하십시오. 캐시 이름은 1 ~ 63 자 사이의 문자열이어야합니다. 문자열에는 숫자, 문자 또는 하이픈 만 포함 할 수 있습니다. 이름은 숫자 나 문자로 시작하고 끝나야하며 연속 하이픈을 포함 할 수 없습니다. 캐시 인스턴스 호스트 이름 될거야 .레 디스.은닉처.창.그물. 신청 드롭 다운하고 구독을 선택하십시오. Redis 인스턴스를위한이 새로운 Azure 캐시를 작성하는 구독. 리소스 그룹 드롭 다운 및 리소스 그룹을 선택하거나 선택하십시오 새로운 창조 새 리소스 그룹 이름을 입력하십시오. 캐시 및 기타 리소스를 생성 할 리소스 그룹의 이름. 모든 앱 리소스를 하나의 리소스 그룹에 넣으면 쉽게 관리하거나 삭제할 수 있습니다. 위치 드롭 다운하고 위치를 선택하십시오. 캐시를 사용할 다른 서비스 근처의 지역을 선택하십시오. 캐시 유형 프리미엄 기능을 구성하기 위해 프리미엄 캐시를 드롭 다운 및 선택하십시오. 자세한 내용은 Redis 가격에 대한 Azure Cache를 참조하십시오. 가격 계층은 캐시에 사용할 수있는 크기, 성능 및 기능을 결정합니다. 자세한 내용은 Redis 개요에 대한 Azure Cache를 참조하십시오. - 선택하십시오 네트워킹 탭 또는 선택하십시오 네트워킹 페이지 하단의 버튼.
- 에서 네트워킹 탭, 연결 방법을 선택하십시오. 프리미엄 캐시 인스턴스의 경우 공개 IP 주소 또는 서비스 엔드 포인트를 통해 또는 개인 엔드 포인트를 사용하여 개인적으로 공개적으로 연결할 수 있습니다.
- 선택하십시오 다음 : 고급 탭 또는 선택하십시오 다음 : 고급 페이지 하단의 버튼.
- 에서 고급의 프리미엄 캐시 인스턴스의 탭, 비 TLS 포트, 클러스터링 및 데이터 지속성의 설정을 구성합니다. 클러스터링을 활성화하려면 선택하십시오 할 수 있게 하다. 클러스터에 최대 10 개의 파편을 가질 수 있습니다. 선택 후 할 수 있게 하다, 슬라이더를 밀거나 1에서 10 사이의 숫자를 입력하십시오 샤드 수 그리고 선택하십시오 좋아요. 각 샤드는 Azure가 관리하는 1 차/복제 캐시 쌍이며, 캐시의 총 크기는 가격 책정 계층에서 선택한 캐시 크기에 파편 수를 곱하여 계산됩니다. 캐시가 생성되면 캐시에 연결하여 클러스터가 아닌 캐시처럼 사용합니다. Redis는 캐시 파편 전체에 데이터를 배포합니다. 진단이 활성화되면 각 샤드마다 메트릭이 별도로 캡처되며 왼쪽의 Redis의 Azure 캐시에서 볼 수 있습니다.
- 선택하십시오 다음 : 태그 탭 또는 선택하십시오 다음 : 태그 페이지 하단의 버튼.
- 선택적으로, 태그 탭, 리소스를 분류하려면 이름과 값을 입력하십시오.
- 선택하다 검토 + 생성. Azure가 구성을 확인하는 리뷰 + 생성 탭으로 이동합니다.
- 녹색 검증 전달 된 메시지가 나타나면 선택하십시오 만들다.
캐시가 생성하는 데 시간이 걸립니다. Redis의 Azure 캐시 진행 상황을 모니터링 할 수 있습니다 개요 페이지. 언제 상태 AS를 보여줍니다 달리기, 캐시를 사용할 준비가되었습니다.
클러스터링이 구성 될 때 클라이언트 애플리케이션에 필요한 약간의 차이가 있습니다. 자세한 내용은 클러스터링을 사용하려면 클라이언트 응용 프로그램을 변경해야합니다?
StackexChange를 사용하여 클러스터링 작업에 대한 샘플 코드.Redis Client, 클러스터링을 참조하십시오.Hello World 샘플의 CS 부분.
실행중인 프리미엄 캐시에서 클러스터 크기를 변경하십시오
이전에 만든 프리미엄 캐시에서 클러스터 크기를 변경하려면 이미 클러스터링 활성화로 실행중인 경우 선택하십시오 클러스터 크기 리소스 메뉴에서.
클러스터 크기를 변경하려면 슬라이더를 사용하거나 1에서 10 사이의 숫자를 입력하십시오 샤드 수 텍스트 상자. 그런 다음 선택하십시오 좋아요 저장하려면.
클러스터 크기를 높이면 최대 처리량과 캐시 크기가 증가합니다. 클러스터 크기를 늘리면 최대가 증가하지 않습니다. 클라이언트가 사용할 수 있습니다.
클러스터 스케일링은 비싼 명령 인 Migrate 명령을 실행하여 최소한의 영향을 미치지 않으려면 비 피크 시간 동안이 작업을 실행하는 것을 고려하십시오. 마이그레이션 과정에서 서버로드가 급증 할 수 있습니다. 클러스터를 스케일링하는 것은 장기적인 프로세스이며 취한 시간은 해당 키와 관련된 값의 키와 크기에 따라 다릅니다.
클러스터링 FAQ
다음 목록에는 Redis 클러스터링에 대한 Azure 캐시에 대한 일반적으로 질문에 대한 답변이 포함되어 있습니다.
- 클러스터링을 사용하려면 클라이언트 응용 프로그램을 변경해야합니까??
- 키는 클러스터에 어떻게 분포됩니까??
- 내가 만들 수있는 가장 큰 캐시 크기는 무엇입니까??
- 모든 Redis 클라이언트가 클러스터링을 지원하십시오?
- 클러스터링이 활성화되면 캐시에 어떻게 연결합니까??
- 캐시의 개별 파편에 직접 연결할 수 있습니까??
- 이전에 생성 된 캐시에 대한 클러스터링을 구성 할 수 있습니까??
- 기본 또는 표준 캐시에 대한 클러스터링을 구성 할 수 있습니까??
- Redis ASP와 클러스터링을 사용할 수 있습니까?.순 세션 상태 및 출력 캐싱 제공 업체?
- StackexChange를 사용할 때 이동 예외가 발생합니다.Redis와 Clustering, 어떻게 해야하는지?
- [클러스터링을 사용하여 스케일링을 수행하여 지원되는 클라이언트 연결 수를 늘리십시오?] (#클러스터링을 사용하여 스케일링을 수행하여 지원되는 클라이언트 연결 수를 늘리십시오?))
클러스터링을 사용하려면 클라이언트 응용 프로그램을 변경해야합니까??
- 클러스터링이 활성화되면 데이터베이스 0 만 사용할 수 있습니다. 클라이언트 애플리케이션이 여러 데이터베이스를 사용하고 0 이외의 데이터베이스를 읽거나 쓰려고하는 경우 다음 예외는 발생합니다. 예외 : StackexChange.레 디스.readisconnectionException : get —> stackexchange의 프로토콜 파일.레 디스.readiscommandException :이 서버에서는 여러 데이터베이스가 지원되지 않습니다. 데이터베이스로 전환 할 수 없음 : 6 자세한 내용은 Redis Cluster 사양 – 구현 된 서브 세트를 참조하십시오.
- StackexChange를 사용하는 경우.Redis, 1을 사용해야합니다.0.481 이상. 클러스터링이 비활성화 된 캐시에 연결할 때 사용하는 동일한 엔드 포인트, 포트 및 키를 사용하여 캐시에 연결. 유일한 차이점은 모든 읽기와 쓰기가 데이터베이스 0에 수행되어야한다는 것입니다. 다른 고객마다 다른 요구 사항이있을 수 있습니다. 모든 REDIS 클라이언트를 지원하는 클러스터링을 참조하십시오?
- 응용 프로그램이 단일 명령으로 배치 된 여러 키 작업을 사용하는 경우 모든 키는 동일한 샤드에 위치해야합니다. 같은 샤드에서 키를 찾으려면 키가 클러스터에 어떻게 분포되는지 확인하십시오?
- Redis ASP를 사용하는 경우.NET 세션 주 공급자, 2를 사용해야합니다.0.1 이상. Redis ASP와 함께 클러스터링을 사용할 수 있습니까?.순 세션 상태 및 출력 캐싱 제공 업체?
키는 클러스터에 어떻게 분포됩니까??
Redis Keys 배포 모델 문서 : 키 공간은 16,384 개의 슬롯으로 분할됩니다. 각 키는 해시되어 클러스터의 노드에 배포되는이 슬롯 중 하나에 할당됩니다. 해시 태그를 사용하여 여러 키가 동일한 샤드에 있는지 확인하기 위해 해시 된 키의 어떤 부분을 구성 할 수 있습니다.
- 해시 태그가있는 키 – 키의 일부가 동봉 된 경우 < and >, 키의 해당 부분만이 키의 해시 슬롯을 결정하기 위해 해시됩니다. 예를 들어, 다음 세 가지 키는 이름의 핵심 부분 만 해시되므로 1, 2 및 3에 동일한 샤드에 있습니다. 키 해시 태그 사양의 전체 목록은 키 해시 태그를 참조하십시오.
- 해시 태그가없는 키 – 전체 키 이름은 해싱에 사용되므로 캐시의 파편에 통계적으로 균일 한 분포가 발생합니다.
최상의 성능과 처리량을 위해 키를 균등하게 배포하는 것이 좋습니다. 해시 태그가있는 키를 사용하는 경우 키가 균등하게 분산되도록 애플리케이션의 책임입니다.
클러스터링 작업 및 동일한 샤드에서 StackexChange와 같은 샘플 코드에 대한 샘플 코드.Redis Client, 클러스터링을 참조하십시오.Hello World 샘플의 CS 부분.
내가 만들 수있는 가장 큰 캐시 크기는 무엇입니까??
가장 큰 캐시 크기는 1입니다.2 tb. 이 결과는 10 개의 샤드가있는 클러스터 된 P5 캐시입니다. 자세한 내용은 Redis 가격에 대한 Azure Cache를 참조하십시오.
모든 Redis 클라이언트가 클러스터링을 지원하십시오?
많은 클라이언트 라이브러리는 Redis 클러스터링을 지원하지만 전부는 아닙니다. 클러스터링을 지원하는 라이브러리와 버전을 사용하고 있는지 확인하기 위해 사용중인 라이브러리 문서를 확인하십시오. Stackexchange.Redis는 최신 버전에서 클러스터링을 지원하는 라이브러리 중 하나입니다. 다른 클라이언트에 대한 자세한 내용은 Redis 클러스터로 스케일링을 참조하십시오.
Redis 클러스터링 프로토콜은 각 클라이언트가 클러스터링 모드에서 각 샤드에 직접 연결해야하며 ‘Mave’NA ‘CrossSlots’와 같은 새로운 오류 응답도 정의해야합니다. 클러스터 모드 캐시를 사용하여 클러스터링을 지원하지 않는 클라이언트 라이브러리를 사용하려고 할 때 결과는 크로스 슬롯 멀티 키 요청을 수행하는 경우 많은 이동 리디렉션 예외가 발생하거나 응용 프로그램을 중단 할 수 있습니다.
StackexChange를 사용하는 경우.클라이언트로서 Redis, 최신 버전의 StackexChange를 사용하는지 확인하십시오.레 디스 1.0.클러스터링이 올바르게 작동하는 481 이상. 이동 예외와 관련된 문제에 대한 자세한 내용은 이동 예외를 참조하십시오.
클러스터링이 활성화되면 캐시에 어떻게 연결합니까??
클러스터링이 활성화되지 않은 캐시에 연결할 때 사용하는 동일한 엔드 포인트, 포트 및 키를 사용하여 캐시에 연결할 수 있습니다. Redis는 백엔드에서 클러스터링을 관리하므로 클라이언트에서 관리 할 필요가 없습니다.
캐시의 개별 파편에 직접 연결할 수 있습니까??
클러스터링 프로토콜에는 클라이언트가 올바른 샤드 연결을 만들어야하므로 클라이언트는 귀하를 위해 공유 연결을해야합니다. 그 말로, 각 샤드는 기본/복제 캐시 쌍으로 구성되며, 캐시 인스턴스로 공동으로 알려져 있습니다. Github의 Redis 저장소의 불안정한 지점에서 Redis-Cli 유틸리티를 사용하여 이러한 캐시 인스턴스에 연결할 수 있습니다. 이 버전은 -c 스위치로 시작하면 기본 지원을 구현합니다. 자세한 내용은 Redis Cluster 자습서를 참조하십시오.
비 TLS의 경우 다음 명령을 사용하십시오.
레 디스 클리.exe –h> -p 13000 (인스턴스에 연결하려면) Redis -Cli.exe –h> -p 13001 (인스턴스에 연결하려면 1) Redis -Cli.exe –h> -p 13002 (인스턴스 2에 연결하려면) . 레 디스 클리.exe –h> -p 1300n (인스턴스 n에 연결하려면)
TLS의 경우 1300N을 1500N으로 교체하십시오 .
이전에 생성 된 캐시에 대한 클러스터링을 구성 할 수 있습니까??
예. 먼저, 캐시를 확장하여 프리미엄인지 확인하십시오. 다음으로 클러스터 활성화 옵션을 포함하여 클러스터 구성 옵션을 볼 수 있습니다. 캐시가 생성 된 후 또는 처음으로 클러스터링을 활성화 한 후 클러스터 크기 변경.
클러스터링 활성화를 취소 할 수 없습니다. 클러스터링이 활성화 된 캐시와 하나의 샤드 만 동작합니다 다르게 같은 크기의 캐시보다 아니요 클러스터링.
기본 또는 표준 캐시에 대한 클러스터링을 구성 할 수 있습니까??
클러스터링은 프리미엄 캐시에만 사용할 수 있습니다.
Redis ASP와 클러스터링을 사용할 수 있습니까?.순 세션 상태 및 출력 캐싱 제공 업체?
- Redis 출력 캐시 제공자 – 변경이 필요하지 않습니다.
- Redis Session State 제공자 – 클러스터링을 사용하려면 RedissessionStateProvider 2를 사용해야합니다.0.1 이상 또는 예외가 발생하여 깨진 변화입니다. 자세한 내용은 v2를 참조하십시오.0.0 변경 세부 사항을 깨뜨립니다.
StackexChange를 사용할 때 이동 예외가 발생합니다.Redis와 Clustering, 어떻게 해야하는지?
StackexChange를 사용하는 경우.Clustering을 사용할 때 Redis 및 이동 예외를 받으십시오. StackexChange를 사용하고 있는지 확인하십시오.레 디스 1.1.603 이상. 구성에 대한 지침 .StackexChange를 사용하는 순 응용 프로그램.Redis, 캐시 클라이언트 구성을 참조하십시오.
클러스터링을 사용하여 스케일링을 제공하여 지원되는 클라이언트 연결 수를 늘리기 위해 도움이됩니다?
아니요, 클러스터링을 사용하여 확장하고 파편 수를 늘리는 것은 지원되는 클라이언트 연결 수를 늘리는 데 도움이되지 않습니다.
다음 단계
Redis 기능에 대한 Azure 캐시에 대해 자세히 알아보십시오.
Redis 클러스터 대. 보초 2014 년 5 월 12 일
Sentinel과 Cluster는 다른 용도로 사용됩니다.이 안내서는 차이점과 각각을 사용하는시기를 설명합니다.
그들은 무엇인가?
Redis에는 여러 인스턴스를 실행하는 두 가지 주요 범주가 있습니다. 거기 있습니다 “표준 복제” 그리고 곧 “Redis 클러스터”. 복제를 관리하려면 Sentinel을 사용합니다. 클러스터는 주로 스스로 관리하지만 복잡한 경우 ha +복제를 위해 두 가지를 연장 할 수 있습니다.
이 안내서는 각각의 차이점과 사용 사례를 더 잘 이해하기 위해 각각을 안내합니다. 우리는 Redis 클러스터로 시작합니다. 이 안내서가 작성 될 때 클러스터는 아직 생산 릴리스에 있지 않으며 세부 사항이 변경 될 수 있습니다.
Redis 클러스터
Redis 클러스터. Redis 3에서 예정되어 있습니다.0.
그것이하는 일
클러스터는 주어진 수의 Redis 인스턴스에 데이터를 전파하도록 구성된 Redis입니다. 클러스터에 클러스터가 클러스터의 마스터와 대화 할 수있는 프로토콜 사양이있는 데이터를 관리하기 위해. 작동중인 키가 로컬로 저장되면 데이터는 정상으로 반환됩니다.
그러나 데이터가 다른 노드에 저장된 경우, 이동 응답이 반환되어 클라이언트에게 대신 대화 할 수있는 마스터에게 알려줍니다. 따라서이 메커니즘은 클러스터에 대한 클라이언트 측 지원이 필요합니다
클러스터는 HA 또는 복제를 직접 제공하지 않습니다.
클러스터가 무엇인지
클러스터의 사용 사례는 스프레드 아웃 하중 (특히 쓰기)과 단일 인스턴스 메모리 기능을 능가하는 중 하나를 중심으로 진화합니다. 2T의 데이터가 있으면 액세스 코드에 샤드 코드를 쓰지 않으려면 클러스터를 지원하는 라이브러리가 있으면 Redis 클러스터가 필요할 것입니다. 광범위한 키에 대한 쓰기 볼륨이 많고 클라이언트 라이브러리가 클러스터를 지원하는 경우 클러스터도 적합합니다.
레 디스 센티넬
Redis는 마스터 노드에서 데이터를 복제하는 여러 노예를 지원합니다. 데이터에 데이터를 제공 할 준비가 된 백업 노드를 제공합니다. 그러나 자동 장애 조치를 제공하려면 일부 도구가 필요합니다. Redis의 경우이 도구를 Sentinel이라고합니다. 이 문서에서는 용어를 사용합니다 “현물 상환 지불” 하나 이상의 노예와 함께 Redis 마스터를 묘사합니다. 이것은 용어와의 혼란을 피합니다 “무리”.
그것이하는 일
Sentinel은 관리 해야하는 마스터를 가리 키도록 구성되었습니다. 그런 다음 연결된 모든 노예의 마스터를 쿼리합니다. POD의 구성이 결정되면 각 노드를 모니터링하고 다운 마스터를 확인하면 슬레이브를 홍보하고 각 슬레이브를 새 마스터에게 가리키도록 재구성합니다.
투명한 클라이언트 연결 관리에이를 사용하려면 마스터 노드를 가상 IP 뒤에 배치하거나 동적으로 구성 할 수있는로드 밸런서를 배치해야합니다.
다른 옵션은 Sentinel 지원을 구현 한 클라이언트를 사용하는 것입니다.
Sentinel은 투표+쿼럼 메커니즘을 사용하므로 함께 작업하는 3 개 이상의 Sentinel 노드가 필요합니다. 나는 이것을 센티넬 별자리라고한다. 각 포드는 별자리에 이름이 부여됩니다. Sentinel Capable 클라이언트 코드를 사용하는 경우 추가 기능이 제공됩니다. 이 시나리오에서는 서비스 검색에 Sentinel을 사용할 수 있습니다.
무엇입니까?
Sentinel의 표준 사용 사례는 1-2 노예가 승진 할 준비가 된 단일 마스터입니다. 그런 다음 Sentinel은 생존 테스트의 한계 내에서 항상 하나의 노드 처리 데이터 트래픽을 유지하는 데 사용됩니다.
또는 하나는 단일 센티넬을 배포하고 각 독립형 마스터 또는 각 포드를 연결하여 서비스 검색을 제공 할 수 있습니다. 이 시나리오에서 아마도 당신은 “웹 캐시” 인스턴스 및 a “메트릭” 사례. 적절한 클라이언트 측 지원을 사용하면 응용 프로그램이 Sentinel 인스턴스에 연결하고 연결 정보를 얻을 수 있습니다 “웹 캐시” 또는 “메트릭” 각 클라이언트에 대한 고유 한 연결 정보가 필요하지 않습니다.
사용하는 것
메모리 요구 사항이 시스템 메모리를 초과하거나 성능 수준을 유지하기 위해 여러 노드에 쓰기를 배포 해야하는 경우 Redis Cluster는 찾고있는 곳입니다.
당신이 높은 이용성을 찾고 있다면, 당신은 당신입니다’LL은 Sentinel 배포를 더 많이 살펴보고 싶습니다.
추가 읽기
- Sentinel 사용
- 최대 1,000 개의 노드에 대한 고성능 및 선형 확장 성. 프록시가없고, 비동기 복제가 사용되며, 값에 대한 병합 작업이 수행되지 않습니다.
- 허용되는 정도의 쓰기 안전 정도. 이 시스템은 대부분의 마스터 노드와 연결된 클라이언트에서 유래 한 모든 쓰기를 유지하려고합니다. 일반적으로 인정 된 글을 잃을 수있는 작은 시간이 있습니다.
- 마스터 노드의 대부분이 도달 할 수 있고 더 이상 도달 할 수없는 모든 마스터 노드에 대해 최소한 하나의 도달 가능한 슬레이브가있는 파티션에서 살아남을 수 있습니다.
- BIND : 기본적으로 지정되지 않은 경우 Redis는 서버의 사용 가능한 모든 네트워크 인터페이스에서 연결을 리터텐트합니다. 하나 또는 다중 선택된 인터페이스 만들을 수 있습니다.
- Protected-Mode : Protected Mode는 인터넷에 열려있는 Redis 인스턴스에 액세스하고 악용되는 것을 피하기 위해 보안 보호 계층입니다. 기본적으로 보호 모드가 활성화됩니다.
- 포트 : 지정된 포트에서 연결을 수락하고 기본값은 6379입니다. 포트 0이 지정된 경우 redis는 TCP 소켓에서 듣지 않습니다.
- 클러스터 가능성 : 특정 redis 노드에서 Redis 클러스터 지원 활성화/비활성화. 비활성화 된 경우 인스턴스가 평소와 같이 독립형 인스턴스로 시작됩니다.
- Cluster-Config-File : Redis 클러스터 노드가 변경 될 때마다 클러스터 구성을 자동으로 유지하는 파일을 시작하여 시작시 다시 읽을 수 있습니다.
- 클러스터-노드-시간 초. 지정된 시간 이상 마스터 노드에 도달 할 수없는 경우 노예가 실패합니다.
- 부록 : 부록 전용 파일은 훨씬 더 나은 내구성을 제공하는 대체 지속 모드입니다. 기본 데이터 fsync 정책을 사용하는 경우 Redis는 정전 방출과 같은 서버 오류에서 1 초만 쓰지 않거나 Redis 프로세스 자체에 문제가있는 경우 단일 쓰기를 잃을 수 있지만 운영 체제는 여전히 올바르게 실행 중입니다.
- 레 디스 커뮤니티
- Redis 복제
- Redis 클러스터 튜토리얼
- Redis 클러스터 사양
- Redis 클러스터 샤딩 소개
- 소스에서 Redis 클러스터를 설정하는 방법
- Redis Replication vs Sharding
- Redis Cluster vs Redis 복제
- Redis Sentinel & Redis 클러스터 – 무엇을?
- 어떤 Redis 배포가 필요합니까??
빌 앤더슨 [소개]
빌 앤더슨. 여가 시간에 그는 아내와 두 명의 딸과 Minecraft를하는 것을 좋아합니다.
자동 장애 조치로 Redis 클러스터 설치 (클러스터 모드 활성화)
Redis는 데이터베이스 또는 캐시로 사용되는 오픈 소스 인 메모리 데이터 스토어입니다. Redis Sentinel을 통해 내장 된 복제가 있으며 Redis Cluster와의 자동 파티셔닝을 통해 고 가용성을 제공합니다. 이 블로그에서는 Redis 클러스터를 설치하는 방법과 방법을 볼 수 있습니다.
Redis 클러스터는 무엇입니까??
Redis Cluster. 노드의 하위 집합이 실패를 경험하거나 나머지 클러스터와 통신 할 수 없을 때 여러 노드에서 데이터 세트를 자동으로 분할하고 작업을 계속할 수 있습니다.
Redis 클러스터 목표는 다음과 같습니다
이제 우리는 그것이 무엇인지 알았습니다’설치 방법을보십시오.
Redis 클러스터를 설치하는 방법
공식 문서에 따르면, 예상대로 작동하는 최소 클러스터는 최소 3 개의 마스터 노드를 포함해야하지만 실제로 권장 사항은 노예를위한 3 개의 마스터와 3 개의 노드가있는 6 개의 노드 클러스터를 갖는 것입니다’S를합니다.
이 예에서는 다음 토폴로지를 사용하여 Centos 8에 Redis 클러스터를 설치합니다
마스터 1 : 10.10.10.121 마스터 2 : 10.10.10.122 마스터 3 : 10.10.10.123 슬레이브 1 : 10.10.10.124 슬레이브 2 : 10.10.10.125 슬레이브 3 : 10.10.10.126
다음 명령은 모든 노드, 마스터 및 슬레이브에서 실행해야합니다.
기본적 으로이 블로그 게시물을 작성하는 동안 Centos 8의 사용 가능한 Redis 버전은 5입니다.0.3, 그래서하자’s는 Remi 저장소를 사용하여 현재 안정 버전 6을 갖습니다.2 :
$ dnf 설치 https : // rpms.remirepo.NET/ENTERPRISE/REMI-RELEASE-8.rpm -y $ dnf 모듈 설치 Redis : Remi -6.2 -y
Redis 서비스 활성화 :
$ SystemCTL 활성화 redis.서비스
Redis 클러스터를 구성하려면 Redis 구성 파일 /etc /redis를 편집해야합니다.다음 매개 변수를 확인하고 변경하십시오
$ vi /etc /redis.conf bind 10.10.10.121 #이 IP 주소를 각 노드 보호 모드의 로컬 IP 주소에 놓으십시오.conflust-node-timeout 15000 appendonly 예
이 매개 변수는 다음과 같습니다
모든 Redis 클러스터 노드에는 두 개의 TCP 연결이 열려 있습니다. 기본적으로 클라이언트에 서비스를 제공하는 데 사용되는 일반 Redis TCP 포트, 기본적으로 데이터 포트에 10000을 추가하여 얻은 포트는 기본적으로 16379입니다. 이 두 번째 포트는 클러스터 버스에 할당되며, 이는 고장 감지, 구성 업데이트, 장애 조치 인증 등에 노드가 사용합니다.
이제 Redis 서비스를 시작할 수 있습니다
$ SystemCTL 시작 redis.서비스
Redis Log 파일에서 기본적으로/var/log/redis/redis.로그, 당신은 이것을 볼 수 있습니다 :
76 : M 0221 18:06:17.658 * 연결을 수락 할 준비가되었습니다
이제 모든 것이 준비되었고 Redis-Cli 도구를 사용하여 클러스터를 만들어야합니다. 이를 위해서는 하나의 노드에서만 다음 명령을 실행해야합니다
$ redis-cli -Cluster 생성 10.10.10.121 : 7000 10.10.10.122 : 7000 10.10.10.123 : 7000 10.10.10.124 : 7000 10.10.10.125 : 7000 10.10.10.126 : 7000 -Cluster-Replicas 1
이 명령에서는 각 노드에 대한 IP 주소와 Redis 포트를 추가해야합니다. 세 개의 첫 번째 노드는 마스터 노드가되고 나머지 노드는 노예 노드입니다. 클러스터-반응 1은 각 마스터 마스터에 대해 하나의 슬레이브 노드를 의미합니다. 이 명령의 출력은 다음과 같습니다
>>> 6 개의 노드에서 해시 슬롯 할당 수행. 마스터 [0] -> 슬롯 0-5460 마스터 [1] -> 슬롯 5461-10922 Mas.10.10.125 : 7000 ~ 10.10.10.121 : 7000 복제본 추가 10.10.10.126 : 7000 ~ 10.10.10.122 : 7000 복제본 추가 10.10.10.124 : 7000 ~ 10.10.10.123 : 7000 M : 4394D8EB03DE1F524B56CB385F0EB9052CE65283 10.10.10.121 : 7000 슬롯 : [0-5460] (5461 슬롯) 마스터 M : 5CC0F693985913C53C6901E102EA3CB8D6678BD 10.10.10.122 : 7000 슬롯 : [5461-10922] (5462 슬롯) 마스터 M : 22DE56650B3714C1C42FC0D120F80C6C24D8795 10.10.10.123 : 7000 슬롯 : [10923-16383] (5461 슬롯) Mas.10.10.124 : 7000 복제 22DE56650B3714C1C42FC0D120F80C6C24D8795 S : AD0F5210DDA1736A1B5467CD6E79797F011A192097 10.10.10.125 : 7000 복제 4394D8EB03DE1F524B56CB385F0EB9052CE65283 S : 184ADA329264E994781412F3986C425A248F386E 10.10.10.126 : 7000 복제 5CC0F693985913C553C6901E102EA3CB8D6678BD 위의 구성을 설정할 수 있습니까?? (수락 할 '예'를 입력) :
구성을 수락하면 클러스터가 생성됩니다
>>> 노드 구성 업데이트 >>> 각 노드에 다른 구성 에포를 할당 >>> 클러스터 보내기 클러스터가 결합하기 위해 클러스터를 만나기 위해 클러스터가 결합되기를 기다립니다 . >>> 클러스터 확인 수행 (노드 10 사용.10.10.121 : 7000) M : 4394D8EB03DE1F524B56CB385F0EB9052CE65283 10.10.10.121 : 7000 슬롯 : [0-5460] (5461 슬롯) 마스터 1 추가 복제본 S : 184ADA329264E994781412F3986C425A248F386E 10.10.10.126 : 7000 슬롯 : (0 슬롯) 슬레이브 복제 5CC0F693985913C53C6901E102EA3CB8D6678BD M : 5CC0F693985913C53C6901E102E3CB8D678BD 10.10.10.122 : 7000 슬롯 : [5461-10922] (5462 슬롯) 마스터 1 추가 복제본 M : 22DE5650B3714C1C42FC0D120F80C6C24D8795 10.10.10.123 : 7000 슬롯 : [10923-16383] (5461 슬롯) 마스터 1 추가 복제본 S : AD0F5210DDA1736A1B5467CD6E797F011A192097 10.10.10.125 : 7000 슬롯 : (0 슬롯) 슬레이브 복제 4394D8EB03DE1F524B56CB385F0EB9052CE65283 S : 8675CD30FDDD4EFA088634E50FBD5C0675238A35E 10.10.10.124 : 7000 슬롯 : (0 슬롯) 슬레이브 복제 22DE56650B3714C1C42FC0D120F80C66C24D8795 [OK] 모든 노드는 슬롯 구성에 동의. >>> 열린 슬롯을 확인하십시오. >>> 슬롯 범위를 확인하십시오. [OK] 모든 16384 슬롯이 다루었습니다.
마스터 로그 파일을 살펴보면 다음을 볼 수 있습니다
3543 : m 0221 19:40:23.250 # configepoch 클러스터 세트 -Config-Epoch 3543을 통해 1로 설정.258 #이 노드의 IP 주소는 10으로 업데이트되었습니다.10.10.121 3543 : M 0221 19:40:25.281 * 복제품 10.10.10.125 : 7000 동기화 요청 3543 : M 02221 19:40:25.281 * 부분 재 동기화되지 않음 : 복제 ID 불일치 (복제본은 '1F42A85E22D8A19817844AC14FBB8201A6FC88', 내 복제 ID는 '9F8DB08A36207C17800F75487B193A6200F000F 00000000000000000000000000000000 ') 3543 : M 02 7 월 2021 19:40:25.281 * 복제 백 로그 생성 된 새로운 복제 ID는 '21ABFCA3B9405356569B2684C6D68C0D2EC19B3B'및 '00000000000000000000000000000000000000000000'3543 : M 02 JUL 2021 19:40:25.281 * 대상과 동기화 용 BGSAVE 시작 : 디스크 3543 : M 02 7 월 2021 19:40:25.284 * PID 3289 3289에 의해 시작된 배경 저장 : C 02 JUL 2021 19:40:25.312 * db 디스크에 저장 3289 : C 02 7 월 2021 19:40:25.313 * RDB : 0MB의 메모리 MB 복사 -WRITE 3543 : M 02 JUL 2021 19:40:25.369 * 성공으로 종료 된 배경 절약 3543 : M 02 7 월 2021 19:40:25.369 * 복제와 동기화 10.10.10.125 : 7000 성공 3543 : M 02 JUL 2021 19:40:28.180 # 클러스터 상태 변경 : 확인
그리고 복제본’S 로그 파일 :
11531 : m 0221 19:40:23.253 # configepoch 클러스터 세트 -Config-Epoch 11531을 통해 4로 설정.357 #이 노드의 IP 주소가 10으로 업데이트되었습니다.10.10.124 11531 : S 02 JUL 2021 19:40:25.277 * 복제본으로 바꾸기 전에, 내 자신의 마스터 매개 변수를 사용하여 캐시 된 마스터를 합성 : 나는 부분 전송만으로 새 마스터와 동기화 할 수 있습니다. 11531 : S 02 JUL 2021 19:40:25.277 * 마스터 연결 10.10.10.123 : 7000 11531 : S 02 7 월 2021 19:40:25.277 * Master Replica Sync 시작 11531 : S 02 7 월 2021 19:40:25.277 # 클러스터 상태 변경 : OK 11531 : S 02 7 월 2021 19:40:25.277 * 동기화에 대한 비 차단 연결 이벤트 발사. 11531 : S 02 JUL 2021 19:40:25.278 * 마스터가 핑에 답장을 받았고, 복제는 계속 될 수 있습니다. 11531 : S 02 JUL 2021 19:40:25.278 * 부분 재 동기화 시도. 11531 : S 02 JUL 2021 19:40:25.279 * 마스터에서 전체 재 동기화 : 99A8DEFC35B459B7B732779333AAA526D3F72AE76E : 0 11531 : S 02 JUL 2021 19:40:25.279 * 이전에 캐시 된 마스터 상태 폐기. 11531 : S 02 JUL 2021 19:40:25.299 * 마스터 복제 동기화 : 마스터에서 디스크까지 175 바이트 수신 11531 : S 02 JUL 2021 19:40:25.299 * 마스터 복제 동기화 : 플러싱 오래된 데이터 11531 : S 02 JUL 2021 19:40:25.300 * 마스터 복제 동기화 : 메모리에 DB로드 11531 : S 02 7 월 2021 19:40:25.306 * 버전 6에 의해 생성 된 RDB 로딩.2.4 11531 : S 02 JUL 2021 19:40:25.306 * RDB 나이 0 초 11531 : S 02 7 월 2021 19:40:25.306 * RDB 메모리 사용을 만들 때 2.60 MB 11531 : S 02 JUL 2021 19:40:25.306 * Master Replica Sync : 성공 완료 11531 : S 02 7 월 2021 19:40:25.308 * 배경 Append only PID 2487 11531에 의해 시작된 파일 재 작성.342 * AOF 재 작성 아동은 Diffs 보내기를 중단하라고 요청합니다. 2487 : C 0221 19:40:25.342 * 학부모는 DIFF를 보내지 않기로 동의했습니다. aof 마무리. 2487 : C 0221 19:40:25.342 * 연결 0.부모로부터받은 aof diff의 00 MB. 2487 : C 0221 19:40:25.343 * 동기화 된 파일 재 작성 만 수행 2487 : C 02 7 월 2021 19:40:25.343 * AOF Rewrite : 0 MB 메모리 MB COPY-ON WRITE 11531 : S 02 JUL 2021 19:40:25.411 * 배경 aof rewrite가 성공하여 종료되었습니다 11531 : S 02 7 월 2021 19:40:25.411 * 잔여 상위 Diff가 다시 쓰여진 AOF (0.00 MB) 11531 : S 02 7 월 2021 19:40:25.411 * 배경 aof rewrite가 성공적으로 완료되었습니다
Redis 클러스터 노드 모니터링
각 redis 노드의 상태를 알기 위해 다음 명령을 사용할 수 있습니다
$ redis -cli -h 10.10.10.121 -P 7000 클러스터 노드 184ADA329264E994781412F3986C425A248F386E 10.10.10.126 : [이메일 보호] 슬레이브 5CC0F693985913C553C6901E102EA3CB8D6678BD 0 16252551555519 2 연결된 5CC0F6985913C553C6901E102E102E3CB8D6678BD 10.10.10.122 : [이메일 보호] 마스터 -016252555153513 2 연결 5461-10922 22DE5650B3714C1C42FC0D120F80C6C24D8795 10.10.10.123 : [이메일 보호] 마스터 -016252555151000 3 연결 10923-16383 AD0F5210DDA1736A1B5467CD6E797F011A192097 10.10.10.125 : [이메일 보호] 슬레이브 4394D8EB03DE1F524B56CB385F0EB9052CE65283 0 1625255153000 1 CONNECTION 8675CD30FDDD4EFA088634E50FBD5C0675238A35E 10.10.10.124 : [이메일 보호] 슬레이브 22DE56650B3714C1C42FC0D120F80C66C24D8795 0 1625255154515 3 연결 4394D8EB03DE1F524B56CB385F0EB9052C65283 10.10.10.121 : [이메일 보호] 나 자신, 마스터 -01625255152000 1 연결 0-5460
Grep Linux 명령을 사용하여 출력을 필터링하여 마스터 노드 만 확인할 수도 있습니다
$ redis -cli -h 10.10.10.121 -p 7000 클러스터 노드 | GREP 마스터 5CC0F693985913C53C6901E102EA3CB8D6678BD 10.10.10.122 : [이메일 보호] 마스터 -01625255389768 2 연결 5461-10922 22DE5650B3714C1C42FC0D120F80C6C24D8795 10.10.10.123 : [이메일 보호] 마스터 -01625255387000 3 연결 10923-16383 4394D8EB03DE1F524B56CB385F0EB9052CE65283 10.10.10.121 : [이메일 보호] 나 자신, 마스터 -01625255387000 1 연결 0-5460
또는 슬레이브 노드조차도 :
$ redis -cli -h 10.10.10.121 -p 7000 클러스터 노드 | GREP 슬레이브 184ADA329264E994781412F3986C425A248F386E 10.10.10.126 : [이메일 보호] 슬레이브 5CC0F693985913C553C6901E102EA3CB8D6678BD 0 1625255395795 2 연결된 AD0F5210DDA1736A1B5467CD6E797F011A192097 10.10.10.125 : [이메일 보호] 슬레이브 4394D8EB03DE1F524B56CB385F0EB9052CE65283 0 1625255395000 1 CONNECTION 8675CD30FD4EFA088634E50FBD5C0675238A35E 10.10.10.124 : [이메일 보호] 슬레이브 22DE56650B3714C1C42FC0D120F80C6C24D8795 0 1625255393000 3 연결
Redis 클러스터 자동 장애 조치
허락하다’s Redis 클러스터에서 자동 장애 조치 기능을 테스트하십시오. 이를 위해 우리는 하나의 마스터 노드에서 Redis 서비스를 중지하고 어떤 일이 일어나는지 볼 것입니다.
마스터 2 – 10.10.10.122 :
$ SystemCTL 중지 redis $ SystemCTL 상태 REDIS | GREP 활성 활성 : FRI 2021-07-02 19:53:41 UTC 이후의 비활성 (죽음); 1 시간 4 분 전
자,하자’s 이전 섹션에서 사용한 명령의 출력을 확인하여 Redis 노드를 모니터링합니다
$ redis -cli -h 10.10.10.121 -P 7000 클러스터 노드 184ADA329264E994781412F3986C425A248F386E 10.10.10.126 : [이메일 보호] 마스터 -016252555654350 7 연결 5461-10922 5CC0F693985913C553C6901E102EA3CB8D6678BD 10.10.10.122 : [이메일 보호] 마스터, 실패 -162525562147 1625255621143 2 연결이 끊어진 22DE56650B3714C1C42FC0D120F80C6C24D8795 10.10.10.123 : [이메일 보호] 마스터 -016252555654000 3 연결 10923-16383 AD0F5210DDA1736A1B5467CD6E797F011A192097 10.10.10.125 : [이메일 보호] 슬레이브 4394D8EB03DE1F524B56CB385F0EB9052CE65283 0 162525565656366 1 CONNECTION 8675CD30FDD4EFA088634E50FBD5C0675238A35E 10.10.10.124 : [이메일 보호] 슬레이브 22DE56650B3714C1C42FC0D120F80C66C24D8795 0 1625255655360 3 연결된 4394D8EB03DE1F524B56CB385F0EB9052C65283 10.10.10.121 : [이메일 보호] 나 자신, 마스터 -016252555653000 1 연결 0-5460
보시다시피, 슬레이브 노드 중 하나가 마스터로 홍보되었습니다.이 경우 슬레이브 3 – 10.10.10.126, 따라서 자동 장애 조치는 예상대로 작동했습니다.
결론
Redis는 메모리 인 데이터 스토어를 사용하려는 경우 좋은 옵션입니다. 이 블로그 게시물에서 볼 수 있듯이 설치는 로켓 과학이 아니며 Redis 클러스터의 사용은 공식 문서에 설명되어 있습니다. 이 블로그는 기본 설치 및 테스트 단계를 다루지 만 예를 들어 Redis 구성에 인증을 추가하거나 Redis-Benchmark 도구를 사용하여 성능을 확인하여 벤치 마크를 실행하여이를 향상시킬 수도 있습니다.
관련 상품
REDIS : 복제, 1 부 – 개요. 복제 대 샤딩. 센티넬 대 클러스터. Redis 토폴로지.
CodeProject
처음에는 Redis 복제를 만드는 방법과 함께 하나의 작은 게시물을 작성할 계획 이었지만 더 많은 세부 사항을 읽을 수 있듯이 점점 더 많은 것을 설명하고 싶었으므로 결국이 게시물을 두 부분으로 나누었습니다.
이것에서 – 몇 가지 빠른 개요, Redis 데이터 배포 유형의 차이에 대한 간단한 설명, 토폴로지 예제.
간단하지만 자세한 문서 및 기타 유용한 게시물에 대한 링크와 다른 리소스에 대한 링크.
두 번째 부분에서 – Redis Sentinel로 간단한 복제 및 복제를 구성하는 방법에 대한 몇 가지 예.
세 번째 부분-Redis Replication 및 Sentinel이있는 Redis-Py 라이브러리 예제.
Redis Replication vs Sharding
Redis는 두 가지 데이터 공유 유형을 지원합니다 복제 (또한 ~으로 알려진 미러링, 데이터 복제) 및 샤딩 (또한 ~으로 알려진 분할, 데이터 세분화). 이것은 – Redis 클러스터는 두 방법을 동시에 사용할 수 있습니다.
복제
클러스터에서 전체 Redis 노드에 대처하는 데이터는 하나 이상의 슬레이브 노드를 요청하고 해당 노드 중 일부가 다운되면 데이터를 지속적으로 만들어 고 가용성을 제공합니다.
이 접근법 사용 – 읽다 요청이 더 빠릅니다.
샤딩
데이터 분할을 사용하면 모든 데이터가 몇 부분으로 분할되며 각 노드가 향상됩니다’S 데이터의 일부만 저장하고 모든 요청에 서비스를 제공하지 않는 S 성능.
이 접근법 사용 – 쓰다 요청이 더 빨리 진행됩니다.
Redis Sentinel vs Redis 클러스터
레 디스 센티넬
Redis v에 추가되었습니다.2.4 기본적으로 마스터 및 노예를위한 모니터링 서비스입니다.
또한 마스터가 다운되면 알림을 보내고 마스터 및 노예 역할을 자동으로 전환 할 수 있습니다.
전체 클러스터링없이 베어 마스터 슬레이브 복제 (아래 참조)에 사용되는 의미가있을 수 있습니다.
그것은 Sentinel Binary 또는 Redis-Server를 사용하여 전용 데몬으로 작동합니다 보초 방법.
마스터가 내려 가면 노드 재구성을 수행합니다.
새로운 마스터 선거를위한 정족수를 갖고 Redis 노드 중 하나가 줄어드는지를 결정해야합니다
Redis 클러스터
Redis v에 추가되었습니다.삼.0 세분화, 복제 및 노드 관리를위한 전체 클러스터링 솔루션을 나타냅니다.
데이터 동기화, 복제, 노드 액세스 관리 관리를 수행하면 일부는 다운됩니다.
Redis 클러스터 케이스의 Sentinel 사용은 그렇습니다’클러스터가 모든 것을 할 수 있기 때문에 이해가됩니다.
Redis 토폴로지
하나의 Redis 인스턴스
가장 단순하고 MOR 클래식 사례.
실행 및 구성이 간단합니다.
호스트에 의해 제한됩니다’S 리소스 – CPU 및 메모리.
이러한 Redis 인스턴스가 줄어든 경우 – 모든 의존 서비스가 파손되고 가용성 또는 결함 허용 메커니즘이 없을뿐만 아니라.
마스터 슬레이브 복제
멀티 파이 노예가 첨부 된 한 마스터.
이 마스터에 대한 데이터가 업데이트 된 다음 마스터가 해당 변경 사항을 복제본으로 밀어냅니다.
노예는 마스터와 만 대화 할 수 있습니다’t 다른 노예들과 의사 소통하지만 여전히 자신의 노예를 가질 수 있습니다
노예는 읽기 전용 노드입니다.이 방법이 아닌 한 데이터 변경을 수행 할 수 없습니다’명시 적으로 구성되었습니다 (이 게시물의 두 번째 부분 참조).
모든 노드가 줄어드는 경우 – 모든 노드가 모든 노드에 걸쳐 데이터가 복제되어 모든 데이터가 클라이언트에 사용할 수 있습니다.
구성에서는 간단하지만 쓰다 운영은 마스터에 의해 제한됩니다’S 리소스.
주인이 내려갈 경우 – 당신은’LL은 수동으로 노예를 재구성하고 노예를 그들에 대한 역할로 마스터 역할로 바꿔야합니다.
또한 고객은 쓰기 운영에 어떤 사용을 해야하는지 알아야합니다.
레 디스 센티넬
이미 위에서 설명했지만 여기에 몇 단어가 더 있습니다.
Redis Replication과 마찬가지로 Sentinel은 Redis Master를 결정할 때 우선 순위가있는 마스터 인스턴스를 가지고 있습니다’S 선거.
나.이자형. Redis Master와 두 명의 노예가있는 경우 Sentinel Master가 Redis Master가 달리는 곳과 동일한 호스트에서 작업하면이 호스트가 내려갈 것입니다. Sentinel은 Sentinel을 선택합니다’새로운 마스터 인스턴스 와이 두 Sentinels 인스턴스는 새로운 Redis Master가되어야하는 Redis Slave를 결정해야합니다.
이 동안 – 센티넬’S 마스터는 그러한 선거에서 더 많은 무게를 가질 것입니다.
모든 Redis 클라이언트가 Sentinel과 함께 일할 수있는 것은 아니며 모든 고객이 여기에서 찾을 수 있습니다 >>>.
Redis 클러스터
그리고 가장 강력한 솔루션 – Redis 클러스터.
마스터 인스턴스가 몇 개 있으며 각각은 최대 1000 명까지 더 가질 수 있습니다.
데이터 샤드, 복제, 동기화 및 장애 조치 작업을 처리합니다.
최소 6 개의 Redis 노드가 있어야합니다 – 마스터의 경우 3 개, 노예의 경우 3 개가 있어야합니다.
클라이언트 요청을 필요한 마스터 또는 슬레이브 호스트로 리디렉션 할 수 있습니다. 그러나 클라이언트는 Redis 클러스터와 함께 일할 수 있어야합니다.