왜 레디 스는 단일 스레드이며, 빠른 높은 동시성에 대한 세 가지 주요 이유는 상세

### ** 레디 스 높은 동시성과 빠른 메모리는 매우 빠른 읽기 및 기반 메모리의 쓰기 속도, ** 1.redis 이유입니다 시간 스레드 컨텍스트 스위치의 많은에 대한 필요성을 제거, 단일 스레드입니다 2.redis 3. 다중화 기술을 사용하여 레디 스, 당신은 동시 연결을 처리 할 수 ​​있습니다. 내부는 epoll에 + 자신의 구현을위한 간단한 이벤트 프레임 워크를 사용, IO이는 epoll을 사용하여 비 차단을 달성한다. epoll 파일은 읽기, 쓰기, 가까운, 연결 이벤트로 변환 된 후, epoll에 다중화 특성을 사용하고 IO에 약간의 시간을 낭비하지 마십시오. ! [파일] (https://img2018.cnblogs.com/blog/1202601/201911/1202601-20191125170338641-645055080.jpg) ### ** 왜 레디 스는 단일 스레드 ** ##### ** 1 . ** 공식 답변은 레디 스 기반 메모리 병목 작업, CPU가 레디 스 아니기 때문에, 레디 스 병목 가능성이 가장 높은 컴퓨터 메모리 또는 네트워크 대역폭의 크기로되어있다. 때문에 쉽게 구현할 단일 스레드, 그리고 CPU가 병목이되지 않습니다, 단일 스레드 프로그램을 채택하는 논리적이다. 성능의 ##### ** 2 **를 들어 레디 스 성과 지표, 공식 웹 사이트는 또한 초당 요청 수십만을 처리 쉽게 일반 노트북을 가지고있다. ##### ** 3. ** ###### ** 자세한 이유는 1) * 모든 데이터 구조가 간단한 키 - 값 목록, 해시하고있는 다른 복잡한 구조뿐만 아니라입니다하지 레디 스 소비 잠금의 다양한 성능을 필요로하지 않습니다 그것은 같은 긴 목록 뒤에 요소를 추가하는 등 매우 세분화 된 작업이 될 해시 그들에 객체를 추가하거나 삭제할 수 있습니다. 이러한 작업은 매우 증가된다 동기화 오버 헤드를 초래 잠금 많이 추가 할 필요가있다. 즉, 단일 스레드 경우에, 우리는 다양한 문제가되지 인해 발생할 수있는 교착 상태 및 원인 성능 오버 헤드의 잠금 잠금 해제 작업이 존재하지 않는, 고정 고려해야 할 필요가 없습니다. ###### ** 2) ** 단일 스레드 코어 당 사실 아주 강한, 매우 높은 효율의 멀티 프로세스를 단일 스레드 클러스터 솔루션의 힘을, 단일 스레드 캡보다 높은 성능을 가질 수 있습니다 멀티 스레드 자연을하지만, 오늘날의 컴퓨팅 환경에서, 단 한 번의 멀티 스레드 캡은 종종 멀티 스레드 기술은 아직 얻을 수없는 것입니다있는 다중 서버 클러스터 프로그램의 추가 탐사에 대한 요구를 충족시킬 수 없다. ** 그래서 단일 스레드, 다중 프로세스 클러스터는 세련된 솔루션이 될 것입니다. ** ### ** 3) CPU 소비 ** 단일 스레드 불필요한 콘텍스트 스위치 및 경쟁 상태를 피하기 위해, 더 다중 프로세스가 없거나 스위칭 리드 CPU 소비되는 멀티 스레드. CPU가 병목 레디 스이되고, 또는 다른 서버 CUP 핵 유휴 수 있도록 원하지 않는 경우에는 어떻게해야합니까? 몇 가지 더 레디 스 공정에 비해 간주 될 수있다, 레디 스에 키 - 값 데이터베이스입니다, 사이 제약, 데이터를 관계형 데이터베이스가되지 않습니다. 한 클라이언트로 레디 스 그것을 처리하는 어떤 키를 구분합니다. ### ** 레디 스의 장점과 명확 단일 프로세스를 단일 스레드 코드의 단일 스레드 ** ##### ** 1 ** * 장점의 단점은, 간단하게 처리 로직은 * 잠금 문제의 다양한 존재하지 않는 고려할 필요가 없습니다 잠금 해제 동작을 잠글 이유로 인해 * 성능 다중 프로세스 또는 멀티 스레드 스위칭 의한 부재의 소비에 의한 교착 불가능은 CPU가 ##### ** 2를 소비한다. 단일 스레드 프로세스 단점 ** * 당신은 멀티 코어 CPU의 성능을 재생할 수 있지만, 완벽에 하나의 레디 스의 여러 인스턴스를 열 수 있습니다, ### ** IO가 다중화 ** 다중화 기술을 사용하여 IO 네트워크 레디 스 다중 연결 시스템의 높은 처리량을 보장하기 위해시. 다중 - 다중화, 소켓 연결하는 복수의 의미 - 다중 스레드를 의미합니다. 세 가지 주요 멀티플렉싱 기술이 있습니다 선택, 설문 조사, epoll 파일은. epoll에 최신 다중화 기술은 현재 최고입니다. 여기서 "다중화하여"복수의 네트워크 연결을 의미한다 "멀티플렉싱"동일한 스레드를 다시 지칭한다. I / O를 단일 스레드 연결 요청하는 복수의 처리를 효율적으로 허용 기법을 다중화하는 다중 채널 (IO 네트워크에 의해 소비되는 시간을 최소화) 여기서하지 않습니다 메모리 동작 내 및 레디 스 동작이 매우 빠르고, 메모리에 데이터를 ( 성능 병목)는 두 가지 주요 레디 스 위의 높은 처리량 만들었습니다. ! [파일] (https://img2018.cnblogs.com/blog/1202601/201911/1202601-20191125170338916-1252634732.jpg) ### ** 레디 스 높은 동시성을 간단히 요약 ** [파일] (HTTPS :! // img2018.cnblogs.com/blog/1202601/201911/1202601-20191125170339448-1316148773.jpg) 1. 레디 스 인 - 메모리 데이터베이스는 일반적으로 간단한 액세스 작업은 순수 스레드는 시간이 IO에 집중 투자하는 시간을 많이 차지 에 이렇게 빠른 속도를 읽으십시오. 2. 비 블로킹, 가까운, 데이터베이스를 엽니 다 읽어, 기술자를 폴링 단일 스레드를 사용하여, 다중화 IO, IO를 쓰기를 사용하여 당신에게 IO, 레디 스 말하자면, 스레드 스위칭 시간을 감소, 이벤트로 변환 컨텍스트 스위칭 및 경쟁. 3. 레디 스은 원자 동작의 각각은 또한 컨텍스트 스위칭 및 경쟁 스레드를 줄일 수 있도록 단일 스레드 모델을 사용한다. 높은 판독 속도, 저장된 데이터가 최적화되는 특별한 데이터 구조가있다 4. 또한, 데이터 구조는 또한 레디 스 전체 해시 구조를 이용하여, 많은 도움이, 이러한 압축 테이블로, 데이터는 단기 기억을 압축 다시 말하지만, 속도 정렬 된 데이터 구조를 사용하여 점프 테이블은 읽어 보시기 바랍니다. 5. 다른 점, 비 차단 실행 모드를보다 효율적으로 내부의 레디 스 이벤트 스플리터 자체의 구현은, 처리 능력이 상대적으로 크다. > 블로그 기사 여러 플랫폼에서이 문서는 [OpenWrite은] (https://openwrite.cn?from=article_bottom) 출시!

추천

출처www.cnblogs.com/chuyang2017/p/11928952.html