단일 스레드 레디 스 높은 동시성을 지원 할 수 있었다 이유

레디 스 높은 동시성과 빠른 이유

  1. 매우 빠른 읽기 및 기반 메모리의 쓰기 속도 레디 스 메모리입니다;
  2. 코어는 비 - 블로킹 IO 멀티플렉싱 메커니즘에 기초한다 ;
  3. 레디 스 단일 스레드이지만, 시간을 전환 스레드 문맥을 많이 저장;

이유는 단일 스레드입니다 레디 스
  레디 스는 메모리 기반 레디 스 병목 현상이 될 가능성이 가장 높은, 병목 작업, CPU가 레디 스없는 컴퓨터 메모리 또는 네트워크 대역폭의 크기 . 쉬운 단일 스레드 구현합니다.

  성능
  성능 레디 스 기반 메모리, 일반 노트북은 쉽게 초당 요청 수십만을 처리합니다.

  자세한 이유는
  1) 다양한 성능 락의 소비를 필요로하지 않는
  , 모든 레디 스 간단한 키 - 값없는 데이터 구조를뿐만 아니라리스트, 해시 등 매우에서와 같이 매우 세밀한 작업을 겪을 가능성이 다른 복잡한 구조 등 요소의 긴 목록을 다시 추가, 추가 또는 해시 그 (것)들에있는 객체를 삭제합니다. 이러한 작업은 매우 증가된다 동기화 오버 헤드를 초래 잠금 많이 추가 할 필요가있다.
즉, 단일 스레드 경우에, 우리는 발생 및 성능 오버 헤드가 발생할 수 있습니다 때문이 아니라 교착 상태, 존재하지 않는 잠금 해제 조작을 잠금, 다양한 문제 잠금 고려해야 할 필요가 없습니다.

  2) 단일 스레드 멀티 프로세스 프로그램 클러스터
  단일 스레드 전원이 코어 당 매우 강력하고 매우 높은 효율 실제로, 멀티 스레드 특성은, 단일 스레드 캡보다 높은 성능을 가지고 있지만, 오늘날의 컴퓨팅 환경에서 할 수도 독립 실행 형의 경우 멀티 스레드 캡은 종종 멀티 스레드 기술은 아직 얻을 수없는 것입니다있는 다중 서버 클러스터 프로그램의 추가 탐사에 대한 요구를 충족시킬 수 없다. 그래서 단일 스레드, 다중 프로세스 클러스터는 세련된 해결책이 될 것입니다.

  3) CPU 사용량
  A는 단일 스레드 불필요한 콘텍스트 스위치 및 경쟁 상태를 피하기 위해 사용은 어떠한 다중 프로세스 또는 멀티 스레드 스위칭 리드 CPU 소비되지있다.
  CPU가 병목 레디 스되고, 또는 다른 서버 CUP 핵 유휴 수 있도록 원하지 않는 경우에는 어떻게해야합니까?
  그것은 몇 레디 스 과정보다 더 고려 될 수있다, 레디 스에 키 - 값 데이터베이스입니다, 사이 제약, 데이터를 관계형 데이터베이스가되지 않습니다. 한 클라이언트로 구별되는 키하는 레디 스이를 처리합니다.

장점과 단일 스레드 레디 스의 단점
  단일 스레드 단일 프로세스 1. 장점
  명확 코드, 간단한 처리 로직은
  , 다양한 문제 잠금 고려해야 할 잠금 해제 동작이 소비 성능에 의해 발생 가능한 교착 상태 때문이 아니라의 존재하지 않는 잠그지
  아니다 다중 프로세스 또는 멀티 스레드 스위칭 리드의 존재는 CPU에게 소비되는
   단일 스레드 단일 공정 2. 단점
  멀티 코어 CPU 성능을 재생할 수 있지만 완벽 싱글 레디 스의 다중 인스턴스를 열 수있는 병목 레디 스를 CPU가되지 않으며


IO 멀티플렉싱
   멀티플렉싱 기술을 사용하여 레디 스 IO 네트워크는 다중 연결, 높은 처리량 시스템을 보장합니다.

  다중 - 소켓 연결하는 복수의 다중화를 의미 - 다중 스레드를 의미합니다. : 세 가지 주요 멀티플렉싱 기술이 있습니다 선택 (SELECT), 설문 조사, epoll 파일은 . epoll에 최신 멀티플렉싱 기술은 현재 최고입니다.

여기서 "다중화"는 다수의 네트워크 연결을 의미한다 "다중화"는 동일한 스레드를 다시 지칭한다. 멀티 채널 단일 스레드 연결 요청하는 복수의 처리 효율있게 I / O 멀티플렉싱 기술 (IO 네트워크에 의해 소비되는 시간을 최소화) 및 메모리 동작 내의 레디 스 조작이 매우 빠르고, 메모리의 데이터 (여기서는 없습니다 성능 병목 현상) , 높은 처리량으로 만든 위의 두 가지 주요 레디 스.

  I / O 다중 모델

  높은 동시성에 대한 요구를 충족 할 수없는 I / O 모델의 차단은 여기에 포함 된 I / O 다중 화기, 클라이언트 레디 스 (레디 스-CLI)의 복수를 지원하기 위해보다 효율적인 I / O 모델을 필요로 모델 :

왜 레디 스 단일 스레드 높은 동시성을 지원할 수?

상기 I / O 멀티플렉싱 모델에서 가장 중요한 함수 호출 SELECT이며 , 동시에 때 하나 또는 판독 기록 가능한 파일 디스크립터의 일부가 될 수있는 공정의 읽기 및 쓰기 파일 디스크립터 복수 모니터링 할 선택 방법은 파일을 읽을 수있는 기술자와 쓰기의 수를 반환 할 때.

추천

출처www.cnblogs.com/liuqing576598117/p/11126685.html