Latest web development tutorials

레디 스 파티션

파티션 레디 스 인스턴스를 처리하는 복수의 데이터로 분할되고, 각 인스턴스는 키의 일부만을 저장한다.

분할의 장점

  • 하나 이상의 컴퓨터의 메모리 값을 사용하여, 우리는보다 큰 데이터베이스를 구축 할 수있다.
  • 여러 시스템과 네트워크 어댑터를 통해 우리는 네트워크의 대역폭을 확대 할 수 있도록, 우리 컴퓨팅 용량 확장 할 수 있도록 멀티 코어 및 멀티 프로세서 시스템에 의한.

부적절한 파티션

분할 성능의 일부 기능 레디 스 아주 좋은되지 않습니다 :

  • 동작은 하나 이상의 키는 일반적으로 지원되지 않는 것을 포함한다. 예를 들어, 두 세트 레디 스의 다른 인스턴스에 매핑 할 때, 당신은이 두 세트 교차로 작업을 수행 할 수 없습니다.
  • 그것은 키 레디 스 거래 번호를 사용할 수없는 것을 포함한다.
  • 파티션을 사용하는 경우, 더 복잡한 데이터 처리는, 예를 들어, 지속성 및 호스트의 여러 인스턴스에서 여러 RDB / AOF 파일 백업 파일을 처리 할 필요가있다.
  • 추가 또는 제거 용량은 더 복잡하다. 레디 스 대부분 지원 클러스터 런타임 증가에, 투명한 데이터 전력의 노드 균형을 삭제할 수 있지만 클라이언트 파티션과 유사, 에이전트 및 다른 시스템이 기능을 지원하지 않습니다. 그러나 presharding 불리는이 기술은 도움이된다.

파티션 유형

레디 스 파티션의 두 가지 유형이 있습니다. 가정이 4 개의 레디 스 인스턴스 R0, R1, R2, R3, 및 유사한 사용자 1, 사용자 : 사용자 키 2와 같은 표현하는 복수의 키가 인스턴스에 저장되어있는 다양한 방식을 선택하는 키 소정 . 즉, 레디 스 서비스에 대한 키를 매핑하는 다양한 시스템이 존재한다.

범위 분할

가장 쉬운 방법은 범위 분할은 주제별 레디 스 인스턴스의 범위에 매핑 분할하는 것입니다.

예를 들어, 0 10000 사용자의 ID는 10001-20000 사용자의 ID는 R1에 저장 등되며, 인스턴스 R0를 저장합니다.

이러한 접근이 가능하고 실용적인 사용되면, 매핑 테이블 인스턴스의 범위 미만의 범위를 갖는 것이다. 이 테이블 관리 될뿐만 아니라, 일반적 레디 스 좋은 방법은 아닌, 다양한 객체를 매핑 할 필요가있다.

해시 분할

또 다른 방법은 파티션 분할을 해시하는 것입니다. 이 모든 키에 적용하고 OBJECT_NAME 일 필요는 없다 : 이 양식은, 간단하게 아래에 설명 된대로 :

  • 해시 함수의 키를 사용하는 것은 그러한 CRC32 해시 함수를 사용하는 등의 숫자로 변환한다. 키는 foobar의 CRC32 (는 foobar)를 출력 유사한 93024922의 정수의 구현입니다.
  • 하나 0-3 일 사이에 디지털로 전환시키고이 정수 모듈은, 그것은 정수 4 레디 스 인스턴스에 매핑 될 수있다. 93,024,922% 4 = 2, 즉 키는 foobar가 R2 인스턴스에 저장해야합니다. 주 : 모듈로 연산이 첨가의 나머지를 수행하는 것이다 % 연산자는 일반적으로 다양한 프로그래밍 언어를 사용하여 구현된다.