왜 Redis는 단일 스레드인가요?
먼저 Redis가 빠르다는 점을 이해해야 합니다! 공식 FAQ에는 Redis가 메모리 기반 작업이기 때문에 CPU가 Redis의 병목 현상이 되지 않는다고 명시되어 있습니다. Redis의 병목 현상은 시스템 메모리 크기나 네트워크 대역폭 때문일 가능성이 높습니다. 싱글 스레딩은 구현하기 쉽고 CPU에 병목 현상이 발생하지 않으므로 싱글 스레드 솔루션을 채택하는 것이 논리적입니다(결국 멀티 스레딩을 사용하면 많은 문제가 발생합니다!). (추천 학습: Redis 동영상 튜토리얼)이것을 보면 울 수도 있습니다! 단일 스레드를 사용하여 Redis를 이렇게 빠르게 만드는 데에는 몇 가지 주요 기술적인 점이 있을 것이라고 생각했지만, 우리를 속이는 듯한 공식적인 답변은 기대하지 않았습니다! 그러나 우리는 Redis가 왜 그렇게 빠른지 이미 명확하게 설명할 수 있으며, 정확하게는 Redis가 단일 스레드 모드에서 이미 빠르기 때문에 멀티 스레딩을 사용할 필요가 없습니다! 그러나 우리의 단일 스레드 접근 방식은 멀티 코어 CPU 성능을 활용할 수 없지만 단일 머신에서 여러 Redis 인스턴스를 열어 성능을 향상시킬 수 있습니다!
여기서 강조한 단일 스레드에는 네트워크 요청을 처리하는 스레드가 하나만 있습니다. 정식 Redis 서버는 실행 시 둘 이상의 스레드를 가져야 합니다. 예를 들어 Redis가 지속되면 하위 프로세스 또는 하위 스레드로 실행됩니다(특정 하위 스레드 또는 하위 프로세스는 독자가 자세히 연구해야 함).
"-T" 매개변수 ps 명령은 SPID 열과 함께 스레드 표시를 나타냅니다.) "SID" 열은 스레드 ID를 나타내고 "CMD" 열은 스레드 이름을 표시합니다.
경고 2:
공식 FAQ의 마지막 단락에는 Redis 버전 4.0부터 멀티스레딩이 지원된다고 명시되어 있습니다. 그러나 멀티스레딩 작업은 특정 작업에서만 수행됩니다! 따라서 이 기사가 향후 버전에서도 여전히 단일 스레드로 작성될지 여부를 독자가 확인해야 합니다!
Redis 관련 기술 기사를 더 보려면 Redis 데이터베이스 사용 튜토리얼 소개 칼럼을 방문하여 알아보세요!
위 내용은 Redis가 단일 스레드인 이유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!