Redis에서 클러스터를 생성하는 방법

(*-*)浩
풀어 주다: 2019-11-20 15:05:52
원래의
2463명이 탐색했습니다.

Redis에서 클러스터를 생성하는 방법

Redis 샤딩 클러스터

Redis 3는 공식 클러스터 기술을 공식 출시하여 문제 여러 Redis 인스턴스 협업 서비스 문제입니다. Redis Cluster는 서버 측 샤딩 기술의 구현체라고 할 수 있습니다. 즉, 특정 알고리즘에 따라 각 인스턴스 샤드에 키 값을 합리적으로 할당하는 동시에 각 인스턴스 노드가 조정하고 통신하여 공동으로 제공한다는 의미입니다. 일관된 외부 서비스. (권장 학습: Redis 동영상 튜토리얼)

다중 Redis 인스턴스 서비스는 단일 Redis 인스턴스보다 훨씬 더 복잡하며, 여기에는 포지셔닝, 협업 및 내결함성이 포함됩니다. , 확장 및 기타 기술적 문제. 여기서는 경량 클라이언트 측 Redis 샤딩 기술을 소개합니다.

Redis Sharding은 Redis Cluster가 나오기 전에 업계에서 흔히 사용하던 Multi-Redis 인스턴스 클러스터 방식이라고 할 수 있습니다. 주요 아이디어는 해시 알고리즘을 사용하여 Redis 데이터의 키를 해시하는 것입니다. 해시 함수를 통해 특정 키가 특정 Redis 노드에 매핑됩니다. 이런 방식으로 클라이언트는 어떤 Redis 노드에서 데이터를 작업할지 알 수 있습니다.

다행스럽게도 Java Redis 클라이언트 드라이버 jedis는 이미 Redis 샤딩 기능, 즉 캐시 풀과 결합된 ShardedJedis 및 ShardedJedisPool을 지원합니다.

Jedis의 Redis 샤딩 구현에는 다음과 같은 특징이 있습니다.

일관된 해싱 알고리즘(일관된 해싱)을 사용하여 키와 노드 이름을 동시에 결합합니다. 시간 해싱, 매핑 및 일치에 사용되는 알고리즘은 MURMUR_HASH입니다.

단순 해시형 모듈로 매핑 대신 일관된 해싱을 사용하는 가장 큰 이유는 노드를 추가하거나 축소할 때 재매칭으로 인한 재해싱이 발생하지 않기 때문입니다. 일관된 해싱은 인접한 노드의 키 할당에만 영향을 미치며 그 영향은 작습니다.

인접한 노드에만 영향을 미치고 노드 할당 압력을 유발하는 일관된 해싱을 방지하기 위해 ShardedJedis는 각 Redis 노드의 이름에 따라 160개의 가상 노드를 가상화합니다(아니요, Jedis는 기본 이름을 할당합니다). 해싱.

무게에 따라 160의 배수인 가상 노드도 가상화 가능합니다. 매핑 일치를 위해 가상 노드를 사용하면 Redis 노드를 추가하거나 줄일 때 인접한 노드만 영향을 받는 대신 Redis 노드 간에 키를 보다 균등하게 이동하고 배포할 수 있습니다.

ShardedJedis는 샤딩을 위해 keyTag의 일부를 추출하는 keyTagPattern 모드를 지원합니다. 이러한 방식으로 키 이름을 적절하게 지정하면 연결된 키 그룹을 동일한 Redis 노드에 넣을 수 있습니다. -노드 액세스. 데이터가 중요합니다.

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿