[십시오] 레디 스 얼굴 질문

1, 복사 과정에서 레디 스에 대한 주요 이야기

몇 가지 핵심이 있습니다
마스터 노드는 슬레이브 노드는 주로 수평 확장을 위해 책임 사용중인 노드에서 읽기, 쓰기에 대한 책임, 우리는 읽습니까 및 쓰기 분리, 슬레이브 노드의 확장은 처리량을 읽을 향상시킬 수 있습니다.
당신이 끌 경우 다운 타임 마스터 데이터가 비어있을 때 그 경우, 마스터 지속성 어쩌면 다음, 다시 시작 할 수 있기 때문에 마스터 노드는 데이터 슬레이브 노드 뜨거운 대기 마스터 노드로 사용하지 않는 것이 좋습니다, 지속성 켜져 있어야 복사 한 후, 슬레이브 노드의 데이터는 손실됩니다.
때 마스터 노드에 PSYNC 명령을 보낼 때 당신이 슬레이브 노드를 시작합니다.
슬레이브 노드가 먼저 마스터 노드에 접속되고, 이는 전체 재 동기화 전체 볼륨 사본을 트리거 할 것이다. 이 때 마스터는 또한 클라이언트 클라이언트는 모든 새로운 쓰기 명령은 메모리에 캐시에서받은 반면 RDB는 스냅 샷 파일을 생성 시작 배경 스레드를 시작합니다.
HTTP는 메커니즘에 의해 상쇄된다.
마스터 노드를 다시 시작하거나 데이터가 변경된 경우, 슬레이브 노드는 여러 실행 ID에 따라 차별화되어야한다.
자세한 내용을 참조하십시오 : HTTPS : //github.com/doocs/advanced-java/blob/master/docs/high-concurrency/redis-master-slave.md


2, 레디 스 복제가 재개의 주요 메커니즘은 무엇인가?
백 로그, 오프셋 (offset)


3, 마스터 노드는 마스터 노드 IP에 따라 배열하는 것이 무엇입니까?
대체 마스터 노드가 찾거나 IP를 대체 할 수없는 경우 때문에, 마스터 실행 ID에 따라 위치하지 않음

4, 노드는 키에게 그것을 만료됩니다?
아니, 마스터 노드는 키 밖으로 LRU를 통과 한 후, 슬레이브 노드에 델 명령을 시뮬레이션 할 것입니다.

5, 고 가용성 클러스터 레디 스 센티넬의 전환 메커니즘을 설명
https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/redis-sentinel.md

도 6은 용액 어떤 데이터 클러스터 센티넬 손실 문제
구비
분 투 쓰기 슬레이브. 1 개
최소 - 최대 - LAG-슬레이브 (10 명)
적어도 하나 개의 슬레이브이고, 데이터 복제 지연은 10 초하지 초과한다. 뿐만 아니라 데이터 손실 분할 뇌를 감소 이것은 인해 비동기 복제 데이터의 손실을 줄일 수 있습니다

감시 클러스터 자동 검색 메커니즘 방법 7,
안녕하세요이 채널이 메시지뿐만 아니라 다른 소비자 센티넬 뉴스, 기타 감시의 존재에 대한 인식을 보낼 : 동시에 __ __sentinel에 술집 / 서브 구현을 통해가.
2 초마다 한 번 보낸처럼 runid 자신의 호스트, IP의 내용.

8, 통화 slave-은> 마스터 선택 알고리즘
: 마스터가 센티넬 대기 전환의 대부분을 허용 odown을 받았습니다 경우, 그것은, 다음을 고려 슬레이브를 선출해야
하며 분리 마스터의 길이, 1
2, 노예 우선 순위
3 더 위치, 중복, 더 우선 순위 복사 오프셋
선거가 나오지 않을 경우, 우리는 작은 runid를 선택보다도 4,

9. 영구 두 가지 방법을 레디 스?

RDB는 : 지속성 데이터에 대한 실행주기
AOF : 로그, 추가 전용 모드로 기록 된 각 명령은 모든 데이터 세트는 로그 AOF를 재생하여 구성 재시작

(10)는, 어떤 장점과 단점의 RDB 지속성 레디 스?
RDB 데이터 파일 (서브 - 처리 기간) 복수의 차가운 대기에 매우 적합하다.
레디 스 그냥 지속 자식 프로세스 디스크 IO 포크 때문에, 아주 작은 레디 스에 대한 외부 서비스의 제공의 성능에 영향을 미칠
빠른 AOF를 다시 시작보다 빠른 데이터 복구
단점은 데이터의 손실 때문에 필요에 RDB의, 덜이 AOF 없다는 것입니다 5 분 마스터가 실패에서 쉽게 데이터를 잃게되면 더 이상 지속.

(11), 레디 스 경우 높은 가용성과 높은 동시성을 보장하기 위해?
이 항목에서는 상대적으로 크다. 나는 몇 가지에 말할 수 있습니다. 참조
https://blog.csdn.net/zero__007/article/details/86564520를

12, 어떻게 이중 레디 스 데이터베이스와 쓰기 일관성을 보장하기 위해?
주요 포인트는 업데이트 테스트 데이터 캐시를 제외하고 패턴에 캐시를 삭제 한 후 데이터베이스를 작성하고 처음이다

(13)는, 데이터 유형이 무엇 레디 스? 어떤 더 적절한 장면에 사용됩니까?
너무 기본, 주니어 개발자뿐만 아니라, 거의 요구하지
https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/redis-data-types.md

(14), 레디 스 데이터 만료 정책은 무엇입니까? 메모리가 부족 어떤 메커니즘입니까?
만료 정책은 정기적으로 만료 여부를 확인하지 않고, 메모리가 부족합니다.
메모리 제거 메커니즘 :
noeviction : 메모리는 기록 된 새로운 데이터를 수용하기에 충분하지 않을 때, 새로운 기록 동작은 구역질,이 그것에 일반적 아무도없는 것을 불평한다.
해서 AllKeys-LRU : 메모리 부족 키 공간에 기록 된 새로운 데이터를 수용하기 위해, 키는 가장 최근에 (이 가장 일반적이다)을 사용을 제거한다.
해서 AllKeys 랜덤 : 메모리가 무작위 키를 제거 키 공간에 기록 된 새 데이터를 수용하기에 충분하지 못할 경우, 키가 확실히 가장 최근에 죽이는 데 사용 무작위해야하는 이유,이 아, 사람들이 그것을 사용하지 일반적으로 .
LRU 휘발성 메모리가 부족 키 공간에 기록 된 새로운 데이터를 수용하기 위해, 유효 시간이 제공되는 키는 최근 최소 사용 (이는 일반적으로 적절하지 않다)를 제거한다.
휘발성 랜덤 : 메모리가 부족 만료 시간에 제공되는 키 스페이스에 기록되는 새로운 데이터를 수용 할 경우, 임의의 키를 제거한다.
휘발성 TTL : 메모리가 만료 시간을 제공하는 주요 공간에 기록되는 새로운 데이터를 저장하기에 불충분하면, 키의 만료 시간은 제거 이전의 우선 순위를 갖는다.

15, 레디 스를 해결하는 방법을 동시 경쟁을 쓰기
달성하기 위해 이러한 노드 사육사와 같은 타사 배포 잠금 장치와 1
, 2를 첫 번째 시계, 멀티, 세트, 간부 트랜잭션 구현을하다 자신의 낙관적 잠금 레디 스와 (트랜잭션)을 달성 할 수 있습니다.
의사 코드 :

코드를 복사
시계의 mykey 
발 = GET의 mykey 
발 = 발 + 1 
MULTI 
SET의 mykey $ 발 
EXEC
코드를 복사

 


3, 특정 알고리즘의 빨간색 잠금 http://www.redis.cn/topics/distlock.html를 참조 Redisson 클라이언트와 달성하기위한 주요 방법 :

코드를 복사
공용 클래스 DistributedRedisLock { 
개인 정적 Redisson redisson RedissonManager.getRedisson = (); 
개인 정적 최종 문자열 LOCK_TITLE = "redisLock_"; 

공공 정적 무효 획득 (문자열 lockName) { 
문자열 키 = LOCK_TITLE lockName +; 
RLock mylock = redisson.getLock (키); 
mylock.lock (2 TimeUnit.MINUTES); // 잠금提供带제한 시간参数, 제한 시간结束强制解锁,防止死锁
System.err.println을 ( "====== 잠금 ======"+는 Thread.currentThread () getName ().); 
} 

공공 정적 무효 릴리스 (문자열 lockName) { 
문자열 키 = LOCK_TITLE lockName +; 
RLock mylock = redisson.getLock (키); 
() mylock.unlock; 
System.err.println을 ( "해제 ====== ======"+는 Thread.currentThread () getName ().); 
} 
}
코드를 복사

 

16, 캐시 사태를 해결하는 방법과 침투
https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/redis-caching-avalanche-and-caching-penetration.md

17 이야기 레디 스 클러스터 가용성 및 대기 스위칭 원리
원칙 레디 스 클러스터는 센티넬과 거의 유사한 높은 사용할 수 있습니다.

심판의 노드가 다운 될
노드가 pfail, 주관적 다운 타임 것을 다음, 다른 노드가 다운 생각합니다. 여러 노드를 고려하는 경우 다른 노드는 거의 같은 원리 센티넬, SDOWN, odown으로, 목적 다운 타임을 실패 그, 간다.

클러스터 노드 - 시간 제한에서, 노드는 다음 고려 pfail이다, 탁구를 반환하지 않았습니다.

노드가 노드 pfail을 고려하면 노드의 절반 이상이 pfail 고려하는 경우, 다음 메시지는 다음이 실패 될 것입니다, 다른 노드로 핑, 핑 가십 것입니다.

노드에서 필터링 된
다운 타임의 마스터 노드, 모든 슬레이브 노드에서, 스위치는 마스터 노드를 선택합니다.

이 클러스터 노드 타임 아웃을 초과하는 경우, 각각의 슬레이브 노드 검사 시간이 끊긴 마스터 노드는 클러스터 * 슬레이브 유효 인자는, 다음의 마스터로 전환 어떤 자격이 없다.

노드 선거에서
각각의 슬레이브 노드는 선거 시간을 설정하기 위해, 자신의 복사본을 마스터에 대한 모든 데이터를 오프셋에있어서, 노드의 시간 선거 앞에 우선 선출 (기타 데이터를 복사하는) 큰 오프셋.

모든 마스터 노드 시작 슬레이브 여론 조사, 마스터 노드의 대부분 (N + 1 / 2) 다음 선거를 통해, 그는 마스터 노드로 전환 할 수 있습니다, 노드 중 하나에 투표 한 경우, 투표에 선거를 실시 슬레이브 .

노드의 전환, 마스터 노드로부터의 스위칭 노드를 행한다.

센 티 넬 비교
센티넬과 전체 프로세스에 비해이되도록 복제 및 감시 기능의 강력하고 직접적인 통합의 클러스터 레디 스, 매우 유사합니다.

18, 분산 알고리즘 레디 스 토론 해결
Nginx의 네 개의 주요 알고리즘, 라운드 로빈, IP 해시를 제공하는 것처럼, 제 개만 부하 알고리즘 어드레스 분산 어드레스 해시 이해를 가중 최소 접속 ( 중량), 주로 어드레스 해시를 사용하여 구현 레디 스.

그냥이 (가상 노드를 포함) 일치하는 해시 알고리즘 및 해시 슬롯 것이 중요 픽업
: 일관성 해시 참조
https://my.oschina.net/xianggao/blog/394545?fromerr=Df6BNkP4
해시 슬롯 알고리즘 :
HTTPS : //www.cnblogs.com/abc-begin/p/8203613.html

16384 해시 슬롯을 해결 한 레디 스 클러스터는, 대응하는 해시 키 슬롯을 얻을 수 있고, CRC16 각 키 값을 다음 모듈로 16384를 산출한다.
각 마스터 레디 스 클러스터는 예를 들어, 세 개의 마스터 후 마스터 수있는 각각 홀드 이상 5000 해시 슬롯이 있으며, 슬롯의 일부를 보유한다. 해시 슬롯을 추가 할 수 있으며 분리 노드 간단 마스터 과거의 다른 마스터의 일부를 이동 의지 해시 슬롯은 마스터를 감소이를 다른 마스터 해시 슬롯까지 이동 될 추가한다. 모바일 해시 슬롯의 비용은 매우 낮습니다. 클라이언트 API는 지정된 데이터는, 그들이 해시 태그로 구현 된 해시 슬롯으로 이동하도록 할 수 있습니다. 기계의 다운 타임, 다른 두 노드는 영향을주지 않습니다. 키는 해시 슬롯이 아닌 기계를 찾을 수 있기 때문에.

왕 신화 (QQ : 475660) 30 년 이상 근무 광저우에 거주하는 저자 소개. 개발 경험의 십년은 더 자바, 인스턴트 메시징, NoSQL에, BPM, 빅 데이터 분야에서 경험했다.
오픈 소스 제품의 현재 유지 보수 : HTTPS : //gitee.com/475660/xyTalk-pc

1, 복사 과정에서 레디 스에 대한 주요 이야기

몇 가지 핵심이 있습니다
마스터 노드는 슬레이브 노드는 주로 수평 확장을 위해 책임 사용중인 노드에서 읽기, 쓰기에 대한 책임, 우리는 읽습니까 및 쓰기 분리, 슬레이브 노드의 확장은 처리량을 읽을 향상시킬 수 있습니다.
당신이 끌 경우 다운 타임 마스터 데이터가 비어있을 때 그 경우, 마스터 지속성 어쩌면 다음, 다시 시작 할 수 있기 때문에 마스터 노드는 데이터 슬레이브 노드 뜨거운 대기 마스터 노드로 사용하지 않는 것이 좋습니다, 지속성 켜져 있어야 복사 한 후, 슬레이브 노드의 데이터는 손실됩니다.
때 마스터 노드에 PSYNC 명령을 보낼 때 당신이 슬레이브 노드를 시작합니다.
슬레이브 노드가 먼저 마스터 노드에 접속되고, 이는 전체 재 동기화 전체 볼륨 사본을 트리거 할 것이다. 이 때 마스터는 또한 클라이언트 클라이언트는 모든 새로운 쓰기 명령은 메모리에 캐시에서받은 반면 RDB는 스냅 샷 파일을 생성 시작 배경 스레드를 시작합니다.
HTTP는 메커니즘에 의해 상쇄된다.
마스터 노드를 다시 시작하거나 데이터가 변경된 경우, 슬레이브 노드는 여러 실행 ID에 따라 차별화되어야한다.
자세한 내용을 참조하십시오 : HTTPS : //github.com/doocs/advanced-java/blob/master/docs/high-concurrency/redis-master-slave.md


2, 레디 스 복제가 재개의 주요 메커니즘은 무엇인가?
백 로그, 오프셋 (offset)


3, 마스터 노드는 마스터 노드 IP에 따라 배열하는 것이 무엇입니까?
대체 마스터 노드가 찾거나 IP를 대체 할 수없는 경우 때문에, 마스터 실행 ID에 따라 위치하지 않음

4, 노드는 키에게 그것을 만료됩니다?
아니, 마스터 노드는 키 밖으로 LRU를 통과 한 후, 슬레이브 노드에 델 명령을 시뮬레이션 할 것입니다.

5, 고 가용성 클러스터 레디 스 센티넬의 전환 메커니즘을 설명
https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/redis-sentinel.md

도 6은 용액 어떤 데이터 클러스터 센티넬 손실 문제
구비
분 투 쓰기 슬레이브. 1 개
최소 - 최대 - LAG-슬레이브 (10 명)
적어도 하나 개의 슬레이브이고, 데이터 복제 지연은 10 초하지 초과한다. 뿐만 아니라 데이터 손실 분할 뇌를 감소 이것은 인해 비동기 복제 데이터의 손실을 줄일 수 있습니다

감시 클러스터 자동 검색 메커니즘 방법 7,
안녕하세요이 채널이 메시지뿐만 아니라 다른 소비자 센티넬 뉴스, 기타 감시의 존재에 대한 인식을 보낼 : 동시에 __ __sentinel에 술집 / 서브 구현을 통해가.
2 초마다 한 번 보낸처럼 runid 자신의 호스트, IP의 내용.

8, 통화 slave-은> 마스터 선택 알고리즘
: 마스터가 센티넬 대기 전환의 대부분을 허용 odown을 받았습니다 경우, 그것은, 다음을 고려 슬레이브를 선출해야
하며 분리 마스터의 길이, 1
2, 노예 우선 순위
3 더 위치, 중복, 더 우선 순위 복사 오프셋
선거가 나오지 않을 경우, 우리는 작은 runid를 선택보다도 4,

9. 영구 두 가지 방법을 레디 스?

RDB는 : 지속성 데이터에 대한 실행주기
AOF : 로그, 추가 전용 모드로 기록 된 각 명령은 모든 데이터 세트는 로그 AOF를 재생하여 구성 재시작

(10)는, 어떤 장점과 단점의 RDB 지속성 레디 스?
RDB 데이터 파일 (서브 - 처리 기간) 복수의 차가운 대기에 매우 적합하다.
레디 스 그냥 지속 자식 프로세스 디스크 IO 포크 때문에, 아주 작은 레디 스에 대한 외부 서비스의 제공의 성능에 영향을 미칠
빠른 AOF를 다시 시작보다 빠른 데이터 복구
단점은 데이터의 손실 때문에 필요에 RDB의, 덜이 AOF 없다는 것입니다 5 분 마스터가 실패에서 쉽게 데이터를 잃게되면 더 이상 지속.

(11), 레디 스 경우 높은 가용성과 높은 동시성을 보장하기 위해?
이 항목에서는 상대적으로 크다. 나는 몇 가지에 말할 수 있습니다. 참조
https://blog.csdn.net/zero__007/article/details/86564520를

12, 어떻게 이중 레디 스 데이터베이스와 쓰기 일관성을 보장하기 위해?
주요 포인트는 업데이트 테스트 데이터 캐시를 제외하고 패턴에 캐시를 삭제 한 후 데이터베이스를 작성하고 처음이다

(13)는, 데이터 유형이 무엇 레디 스? 어떤 더 적절한 장면에 사용됩니까?
너무 기본, 주니어 개발자뿐만 아니라, 거의 요구하지
https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/redis-data-types.md

(14), 레디 스 데이터 만료 정책은 무엇입니까? 메모리가 부족 어떤 메커니즘입니까?
만료 정책은 정기적으로 만료 여부를 확인하지 않고, 메모리가 부족합니다.
메모리 제거 메커니즘 :
noeviction : 메모리는 기록 된 새로운 데이터를 수용하기에 충분하지 않을 때, 새로운 기록 동작은 구역질,이 그것에 일반적 아무도없는 것을 불평한다.
해서 AllKeys-LRU : 메모리 부족 키 공간에 기록 된 새로운 데이터를 수용하기 위해, 키는 가장 최근에 (이 가장 일반적이다)을 사용을 제거한다.
해서 AllKeys 랜덤 : 메모리가 무작위 키를 제거 키 공간에 기록 된 새 데이터를 수용하기에 충분하지 못할 경우, 키가 확실히 가장 최근에 죽이는 데 사용 무작위해야하는 이유,이 아, 사람들이 그것을 사용하지 일반적으로 .
LRU 휘발성 메모리가 부족 키 공간에 기록 된 새로운 데이터를 수용하기 위해, 유효 시간이 제공되는 키는 최근 최소 사용 (이는 일반적으로 적절하지 않다)를 제거한다.
휘발성 랜덤 : 메모리가 부족 만료 시간에 제공되는 키 스페이스에 기록되는 새로운 데이터를 수용 할 경우, 임의의 키를 제거한다.
휘발성 TTL : 메모리가 만료 시간을 제공하는 주요 공간에 기록되는 새로운 데이터를 저장하기에 불충분하면, 키의 만료 시간은 제거 이전의 우선 순위를 갖는다.

15, 레디 스를 해결하는 방법을 동시 경쟁을 쓰기
달성하기 위해 이러한 노드 사육사와 같은 타사 배포 잠금 장치와 1
, 2를 첫 번째 시계, 멀티, 세트, 간부 트랜잭션 구현을하다 자신의 낙관적 잠금 레디 스와 (트랜잭션)을 달성 할 수 있습니다.
의사 코드 :

코드를 복사
시계의 mykey 
발 = GET의 mykey 
발 = 발 + 1 
MULTI 
SET의 mykey $ 발 
EXEC
코드를 복사

 


3, 특정 알고리즘의 빨간색 잠금 http://www.redis.cn/topics/distlock.html를 참조 Redisson 클라이언트와 달성하기위한 주요 방법 :

코드를 복사
공용 클래스 DistributedRedisLock { 
개인 정적 Redisson redisson RedissonManager.getRedisson = (); 
개인 정적 최종 문자열 LOCK_TITLE = "redisLock_"; 

공공 정적 무효 획득 (문자열 lockName) { 
문자열 키 = LOCK_TITLE lockName +; 
RLock mylock = redisson.getLock (키); 
mylock.lock (2 TimeUnit.MINUTES); // 잠금提供带제한 시간参数, 제한 시간结束强制解锁,防止死锁
System.err.println을 ( "====== 잠금 ======"+는 Thread.currentThread () getName ().); 
} 

공공 정적 무효 릴리스 (문자열 lockName) { 
문자열 키 = LOCK_TITLE lockName +; 
RLock mylock = redisson.getLock (키); 
() mylock.unlock; 
System.err.println을 ( "해제 ====== ======"+는 Thread.currentThread () getName ().); 
} 
}
코드를 복사

 

16, 캐시 사태를 해결하는 방법과 침투
https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/redis-caching-avalanche-and-caching-penetration.md

17 이야기 레디 스 클러스터 가용성 및 대기 스위칭 원리
원칙 레디 스 클러스터는 센티넬과 거의 유사한 높은 사용할 수 있습니다.

심판의 노드가 다운 될
노드가 pfail, 주관적 다운 타임 것을 다음, 다른 노드가 다운 생각합니다. 여러 노드를 고려하는 경우 다른 노드는 거의 같은 원리 센티넬, SDOWN, odown으로, 목적 다운 타임을 실패 그, 간다.

클러스터 노드 - 시간 제한에서, 노드는 다음 고려 pfail이다, 탁구를 반환하지 않았습니다.

노드가 노드 pfail을 고려하면 노드의 절반 이상이 pfail 고려하는 경우, 다음 메시지는 다음이 실패 될 것입니다, 다른 노드로 핑, 핑 가십 것입니다.

노드에서 필터링 된
다운 타임의 마스터 노드, 모든 슬레이브 노드에서, 스위치는 마스터 노드를 선택합니다.

이 클러스터 노드 타임 아웃을 초과하는 경우, 각각의 슬레이브 노드 검사 시간이 끊긴 마스터 노드는 클러스터 * 슬레이브 유효 인자는, 다음의 마스터로 전환 어떤 자격이 없다.

노드 선거에서
각각의 슬레이브 노드는 선거 시간을 설정하기 위해, 자신의 복사본을 마스터에 대한 모든 데이터를 오프셋에있어서, 노드의 시간 선거 앞에 우선 선출 (기타 데이터를 복사하는) 큰 오프셋.

모든 마스터 노드 시작 슬레이브 여론 조사, 마스터 노드의 대부분 (N + 1 / 2) 다음 선거를 통해, 그는 마스터 노드로 전환 할 수 있습니다, 노드 중 하나에 투표 한 경우, 투표에 선거를 실시 슬레이브 .

노드의 전환, 마스터 노드로부터의 스위칭 노드를 행한다.

센 티 넬 비교
센티넬과 전체 프로세스에 비해이되도록 복제 및 감시 기능의 강력하고 직접적인 통합의 클러스터 레디 스, 매우 유사합니다.

18, 분산 알고리즘 레디 스 토론 해결
Nginx의 네 개의 주요 알고리즘, 라운드 로빈, IP 해시를 제공하는 것처럼, 제 개만 부하 알고리즘 어드레스 분산 어드레스 해시 이해를 가중 최소 접속 ( 중량), 주로 어드레스 해시를 사용하여 구현 레디 스.

그냥이 (가상 노드를 포함) 일치하는 해시 알고리즘 및 해시 슬롯 것이 중요 픽업
: 일관성 해시 참조
https://my.oschina.net/xianggao/blog/394545?fromerr=Df6BNkP4
해시 슬롯 알고리즘 :
HTTPS : //www.cnblogs.com/abc-begin/p/8203613.html

16384 해시 슬롯을 해결 한 레디 스 클러스터는, 대응하는 해시 키 슬롯을 얻을 수 있고, CRC16 각 키 값을 다음 모듈로 16384를 산출한다.
각 마스터 레디 스 클러스터는 예를 들어, 세 개의 마스터 후 마스터 수있는 각각 홀드 이상 5000 해시 슬롯이 있으며, 슬롯의 일부를 보유한다. 해시 슬롯을 추가 할 수 있으며 분리 노드 간단 마스터 과거의 다른 마스터의 일부를 이동 의지 해시 슬롯은 마스터를 감소이를 다른 마스터 해시 슬롯까지 이동 될 추가한다. 모바일 해시 슬롯의 비용은 매우 낮습니다. 클라이언트 API는 지정된 데이터는, 그들이 해시 태그로 구현 된 해시 슬롯으로 이동하도록 할 수 있습니다. 기계의 다운 타임, 다른 두 노드는 영향을주지 않습니다. 키는 해시 슬롯이 아닌 기계를 찾을 수 있기 때문에.

추천

출처www.cnblogs.com/Koaler/p/11933071.html