>  기사  >  데이터 베이스  >  Redis가 왜 빠른가요?

Redis가 왜 빠른가요?

(*-*)浩
(*-*)浩원래의
2019-11-21 13:32:167364검색

Redis가 왜 빠른가요?

1. 완전히 메모리를 기반으로 하며 대부분의 요청은 매우 빠른 순수 메모리 작업입니다. HashMap과 마찬가지로 데이터는 메모리에 저장됩니다. 검색 및 연산의 시간 복잡도는 O(1)입니다.

2. 데이터 구조도 간단합니다. Redis의 구조는

3. 단일 스레드를 사용하여 불필요한 컨텍스트 전환 및 경쟁 조건을 방지합니다. CPU를 소비하는 다중 프로세스 또는 다중 스레딩이 필요하지 않습니다. 다양한 잠금 문제를 고려하고 추가할 필요가 없습니다. 잠금 해제 잠금 작업은 교착 상태로 인한 성능 소모가 없습니다;

4, 다채널 I/O 다중화 모델 사용, 비차단 IO;

5, 다른 기본 모델을 사용하면 기본 구현 방법과 클라이언트와의 통신을 위한 응용 프로그램 프로토콜이 다릅니다. Redis는 자체적으로 VM 메커니즘을 구축합니다. 일반 시스템이 시스템 기능을 호출하면 일정 금액이 낭비되기 때문입니다.

위의 사항을 이해하기가 더 쉽습니다. 아래에서 다중 채널 I/O 다중화 모델에 대해 간략하게 설명하겠습니다.

(1) 다중 채널 I/O 다중화 모델

다중 채널 I/O 다중화 모델은 select, Poll 및 epoll을 사용하여 여러 스트림의 I/O 이벤트를 동시에 모니터링할 수 있으며 유휴 상태일 때 하나 이상의 스트림에 I/O가 있는 경우 이를 차단합니다. O 이벤트의 경우 차단된 상태에서 깨어납니다. 따라서 프로그램은 모든 스트림을 폴링하고(epoll은 실제로 이벤트를 생성하는 스트림만 폴링합니다) 준비된 스트림만 순서대로 처리합니다.

여기서 "다중"은 여러 네트워크 연결을 의미하고 "재사용"은 동일한 스레드를 재사용하는 것을 의미합니다. 다중 채널 I/O 다중화 기술을 사용하면 단일 스레드가 여러 연결 요청을 효율적으로 처리할 수 있으며(네트워크 IO의 시간 소모 최소화) Redis는 메모리에서 데이터를 매우 빠르게 처리하므로 메모리에서의 작업이 수행되지 않습니다. Redis의 성능에 영향을 미치는 병목 현상이 발생합니다. 위의 사항은 주로 Redis의 높은 처리량에 기여합니다.

위 내용은 Redis가 왜 빠른가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.