[예약] 단일 스레드 성능 레디 스 왜 그렇게 높은?

레디 스의 장점

고성능에만 스레딩 모델과 관련이없는, 그것은 많은 이유, 주로 다음과 같은 세 가지 포인트가 있습니다 :

  1. 메모리 기준,
  2. 단일 스레드하지만 높은 활용도 IO 멀티플렉싱;
  3. 데이터 구조는 높은 성능을 위해 최적화된다.

다음은 정교했다.

레디 스의 장점 : 메모리 기반

성능의 수준은 레디 스는 메모리 기반 데이터베이스, 우리는 기존의 디스크 기반 데이터베이스와 같이을 상대적으로 비교 한 상대입니다 :

레디 스 데이터베이스 메모리를 기반으로하며, 장면의 포인트는 다음과 같습니다 :

  1. 데이터 쿼리 클래스의 장면 : 메모리 데이터의 전체 양이 메모리에서 직접 얻을 수 있었다;
  2. 데이터는 장면과 같이 기록 : 당신이 메모리에 기록 동기화 지속성을 구성하는 경우, 그것은 또한, 디스크에 기록 성능을 감소하지만, 레디 스는 IO 멀티플렉싱을 사용하고 있기 때문에, IO 더 스레드 경합이없는 것 높은 활용도.
  3. 데이터는 장면과 같이 기록 : 비동기 지속성을 구성하는 경우, 성공적으로 디스크 및 고성능에 기록을 기다리지 않고, 메모리에 그 성공적인 응답을 작성.

다음과 같이 전통적인 디스크 데이터베이스, 서브 시나리오는 다음과 같습니다

  1. 장면 데이터 쿼리 카테고리 : 디스크에서 인덱스 데이터 및 반환 쿼리에 대한 응답;
  2. 데이터가 디스크에 기록에서, 디스크에 인덱스 파일을 업데이트 : 데이터는 장면과 같이 기록됩니다.

위에서 볼 수 있듯이 : 레디 스 메모리에서 수행 작업의 대부분, IO 메모리 효율이 디스크보다 훨씬 더 높은 메모리 기반 데이터베이스입니다. 이 그래서 높은 레디 스 성능에 대한 이유입니다.

레디 스의 장점 : 단일 스레드, 높은 IO IO 사용률이 다중화

레디 스 여기에 효율적이지, 멀티 스레드 처리가 열려있는 경우 단일 스레드, 단일 스레드 프로세스를 보통이지만, 왜의 효율성 레디 스 하이 백?

  1. 스레드 경합의 존재를 멀티 스레딩, 일반적으로 약간의 성능 손실을 가져다 잠금 문제, 멀티 스레드 코드 로직 복잡, 복잡한 논리가있다;
  2. 레디 스 단일 스레드 있지만, 그러나 그것의 높은 활용도 IO 모델을 "I / O 멀티플렉서 (다중화)".

은 "I / O를 다중화"가장 효율적인는 epoll 모델이 사용되지만, 단일 스레드 다중 클라이언트 액세스를 달성하기 위해, 높은 IO 사용률 레디 스. 도는 다음과 같습니다 :

레디 스의 장점 : 높은 성능을 위해 최적화 된 데이터 구조

최적화 된 데이터 구조 (제한된 공간이 여기에 시작되지 않음) 주로 다음 두 가지 사항은 다음과 같습니다

  1. 해시 따라서 액세스 효율이 매우 높은, 구조의 전체를 사용 레디 스;
  2. 컨텐츠 데이터의 저장이 압축 된 경우, 공간을 절약 점유뿐만 아니라 IO 대역폭을 줄일 수 있습니다.

출처 : Wukong Q & A

추천

출처www.cnblogs.com/bjkandy/p/12055845.html