2017-01-06 1 views
0

Redis는 마스터 마스터 복제를 지원하지 않습니다. Redis 클러스터 /로드 균형 조정

어느 한이 구성의 목적이 무엇인지 말해 줄 수있는 레디 스 튜토리얼 내가 6 개 노드, 3 주, 3 노예, 구성이 있음을 볼 수 있습니다에서

(노예 장애 조치를 위해입니다 , 3 마스터의 목적은 무엇입니까?)

내 요구 사항은 앱 서버에서 Redis 로의 연결 수를 줄이는 것입니다. 그래서 여러 개의 redis 노드를 가리킬 수있는 방법을 찾고 있었기 때문에 redis 노드 1에서 키를 생성하면 Redis 노드 2에서 해당 키를 삭제할 수 있습니다.

가능합니까? 이 기능 def check_create_parameters

레디 스 - trib.rb

에 약간의 작업을 할 경우 모든

답변

1

먼저 당신은 기본 구성을 변경할 수 있습니다. 하나의 마스터 복제본과 하나의 슬레이브 복제본을 설정할 수 있습니다.

이 구성의 목적은 내결함성을위한 것입니다. 또한 슬레이브는 읽기 (READONLY)에 사용될 수 있습니다. 세 가지 마스터에서 해시 슬롯은 균등하게 분산되며 사용자가 재배포 할 수있는로드 밸런싱 알고리즘과 실제 키를 사용합니다. 노드 사이의 키를 distirbutes 가능한 알고리즘의 단계는 (내게로 테스트가 예상대로 작동)됩니다

  1. 키의 총 수를 확보 주인의 군중을 찾기가
  2. 를 개최 각 마스터 노드 저장소 각 마스터 키의 분포 (클러스터의 총 키/마스터의 수 )
  3. 균형을 수 있도록 유지되어야하는 호스트 이름, 포트 및
  4. 키를 계산 키의 수에 대한 어떤 찾기 마스터 노드
  5. 시작을 대상으로 소스 노드에서 마이그레이션
  6. 소스 또는 대상 노드가 여부가 수신하거나 각각 키를 포기하는에 따라로서 주인을 특성화 걸릴/취하거나 키와 총량가 제공해야합니다 키 을 부여해야 노드, 먼저 hashslots하고 관련 키와 반복 처리는 모든 주인이 알고리즘은 응답 시간을 최소화하는 데 도움이 될 것입니다

키의 동일한 금액을 때까지. 의미 :

세 가지 마스터를 사용하면 응답 시간을 최소화 할 수 있습니다. 하나의 마스터가있는 구성이 있고이 마스터가 예를 들어 30000 # 키를 보유하고있는 경우, 1000 키를 한 번에 가져 오는 응답 시간은 각각 15000을 보유하는 2 개의 마스터가있는 구성에서>입니다.

master1에 키를 만들면 master2에서 해당 키에 도달 (읽기)하려고하면 이동 오류가 발생합니다. 따라서 해결책은 해시 슬롯을 해당 노드에 매핑하는 스마트 클라이언트를 만드는 것입니다. 따라서 master2가 요청을 올바른 마스터로 리디렉션하는 경우에만 master2에서 키를 삭제할 수 있습니다.

희망이 있습니다.

+0

위의 참조를 제공 할 수 있습니까? – quintindk

+0

다음을 참조하십시오 : https://www.researchgate.net/publication/309732099_Load_Balancing_in_In-Memory_Key-Value_Stores_for_Response_Time_Minimization – Antonis

관련 문제