>  기사  >  데이터 베이스  >  Redis는 스레드로부터 안전합니까?

Redis는 스레드로부터 안전합니까?

(*-*)浩
(*-*)浩원래의
2019-06-18 10:46:327379검색

redis는 단일 스레드입니다.

Single-threaded는 하나의 스레드를 사용하는 네트워크 요청 모듈을 나타냅니다(따라서 동시성 안전성을 고려할 필요가 없습니다). 즉, 하나의 스레드 모든 네트워크 요청을 처리하기 위해 다른 모듈은 여전히 ​​여러 스레드를 사용합니다.

Redis는 스레드로부터 안전합니까?

스레드 안전(권장 학습: Redis 비디오 튜토리얼# 🎜🎜#)

redis는 실제로 스레드 폐쇄 개념을 채택하고 하나의 스레드에서 작업을 닫으므로 스레드 안전 문제를 자연스럽게 방지할 수 있습니다. 그러나 여러 Redis 작업에 의존해야 하는 애플리케이션의 경우. 복합 작업의 경우에도 잠금이 필요하며 분산 잠금일 수 있습니다.

redis가 빠르게 실행될 수 있는 이유:

(1) 대부분의 요청은 순수 메모리 작업입니다(매우 빠름)

(2) 불필요한 컨텍스트 전환 및 경쟁 조건을 피하기 위해 단일 스레드 사용
(3) 비차단 IO - IO 다중화(IO 다중화란 무엇을 의미합니까?)

IO 다중화에는 select, poll 및 epoll의 세 가지 방법이 있습니다. select와 poll은 스레드로부터 안전하지 않은 반면 epoll은 스레드로부터 안전하다는 점에 유의해야 합니다.

redis의 내부 구현은 epoll + 자체적으로 구현되는 간단한 이벤트 프레임워크를 사용하는 epoll을 사용합니다. epoll의 읽기, 쓰기, 닫기 및 연결은 모두 이벤트로 변환된 다음 epoll의 다중화 기능을 사용하여 io에서 시간을 낭비하지 않습니다. 특히 첫 번째 조건은 요청의 경우 서로 독립적이지 않습니다. 모두 시간이 많이 걸리며 단일 스레드를 사용하는 경우의 처리량과 성능을 상상할 수 있습니다. Redis는 특수한 시나리오에 적합한 기술 솔루션을 선택했다고 말할 수 있습니다.

Redis를 사용하면 어떤 이점이 있나요?

HashMap과 마찬가지로 데이터가 메모리에 저장되기 때문에 빠릅니다. HashMap의 장점은 검색 및 연산의 시간 복잡도가 O(1)

#입니다. 🎜🎜#
다양한 데이터 유형 지원, 문자열, 목록, 집합, 정렬된 집합, 해시 지원


트랜잭션 지원, 작업은 원자적, 소위 원자성은 변화입니다. 데이터를 모두 실행하거나 모두 실행하지 마세요


풍부한 기능: 캐시, 메시지에 사용할 수 있으며 키로 만료 시간을 설정하고 만료 후 자동으로 삭제됩니다 #🎜🎜 #

Redis 관련 기술 기사를 더 보려면
Redis 데이터베이스 사용 튜토리얼

열을 방문하여 알아보세요!

위 내용은 Redis는 스레드로부터 안전합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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