[REDIS] 왜 레디 스에 대한 비동기 클라이언트를 사용하는 의미가 무엇입니까?
REDIS왜 레디 스에 대한 비동기 클라이언트를 사용하는 의미가 무엇입니까?
레디 스 클라이언트 목록이 페이지에서는, 나는 8 비동기 라이브러리를 세었다. 나의 이해는, 그렇지 않으면 당신은뿐만 아니라 동기 갈 수도, Node.js를 같은처럼 그 프레임 워크 또는 비동기 콜백 함수가 I / O를 위해 서로 싸우고되지 않은 경우에만 의미가 토네이도.
그러나 레디 스 단일 스레드입니다. 실제로 I / O를 위해 싸우고있다 그래서. 레디 스의 단일 스레드 본질은 모두에게 비동기 콜백의 잠재적 인 이익을 취소하지 않습니다? 왜 레디 스 비동기 클라이언트를 사용하는 의미가 무엇입니까?
해결법
-
==============================
1.레디 스의 단일 스레드 본질은 비동기 클라이언트의 잠재적 인 이익에 대한 무관하다. 독특한 이벤트 루프에도 불구하고, 레디 스 동시에 클라이언트 연결의 좋은 번호를 관리 할 수 있습니다. 나는 하나의 레디 스 인스턴스에서 30000 개 연결을 최대로 벤치 마크를 보았다.
레디 스의 단일 스레드 본질은 비동기 클라이언트의 잠재적 인 이익에 대한 무관하다. 독특한 이벤트 루프에도 불구하고, 레디 스 동시에 클라이언트 연결의 좋은 번호를 관리 할 수 있습니다. 나는 하나의 레디 스 인스턴스에서 30000 개 연결을 최대로 벤치 마크를 보았다.
그냥 고려한다는 점에서 메모리 키 / 레디 스 또는 memcached를, 성능 및 대기 시간 등의 값을 저장하지 않고 서버 측 CPU 소비보다 네트워크 왕복에 의해 지배와. 부여 네트워크 링크가 포화 될 때 네트워크의 지연 시간을 증가 왕복하지만, 네트워크가 포화 상태에서 멀리 때 무시해 것은 아니다. 예를 들어, 매우 가볍게로드 1 개 기가비트 이더넷 네트워크에서, 우리 (200)에 RTT 대기 시간 가까이 볼 드문 일이 아니다.
결과가 네트워크 링크가 가까운 포화 상태에있는 경우를 제외하고, 클라이언트 연결 (또는 비동기 콜백 함수는) 거의 I / O를 위해 서로 경쟁하지 않습니다. 소켓은 네트워크에 대한 읽기 및 쓰기 작업의 비용을 상환 버퍼로 연결됩니다. 대부분의 시간, 대기 상태는 I / O 경쟁으로 인해 아니지만, 네트워크의 지연 시간에.
네트워크 대기 시간의 영향을 줄일 수있는 여러 가지 방법이 있습니다 :
이 솔루션은 모든 레디 스 에코 시스템에 의해 지원되며, 성능을 극대화하기 위해 결합 될 수있다. 비동기 클라이언트는 일반적으로 조합의이 종류를 할 수 있습니다. 비동기 클라이언트의 사용 사례는 무엇입니까? 다음은 몇 가지 예입니다 :
이벤트 루프, 비동기 라이브러리, 및 / 또는 메커니즘 코 루틴과 같은이 밖으로 효율적인 NoSQL에 엔진의 대부분의 모퉁이 돌 중 하나입니다.
from https://stackoverflow.com/questions/27342508/why-does-it-make-sense-to-use-asynchronous-clients-for-redis by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 레디 스과의 화합물 검색어 (0) | 2020.01.20 |
---|---|
[REDIS] 비동기 레디 스는 libevent를 사용하여 풀링 (0) | 2020.01.20 |
[REDIS] Jedis 연결을 가져올 수 없습니다; 풀에서 리소스를 가져올 수 없습니다 (0) | 2020.01.20 |
[REDIS] Laravel - 지우기 모든 캐시 / 특정 문자열이 포함 된 키를 레디 스 (0) | 2020.01.20 |
[REDIS] ActionCable : 사용자 당 하나 개의 채널 (0) | 2020.01.20 |