복붙노트

[REDIS] 레디 스는 단일 스레드입니다. 그럼 왜 상추를 사용해야합니까?

REDIS

레디 스는 단일 스레드입니다. 그럼 왜 상추를 사용해야합니까?

레디 스 4.0 후 레디 스는 (1. 삭제가, 배경에 등을 객체) 멀티 스레드 몇 가지 기능을 실행할 수 있지만, 레디 스 여전히 일반적으로 단일 스레드를 사용합니다. FAQ - 레디 스

내가 추측 그래서 상추는 쓸모가 없다. 상추는 한 연결에서 여러 스레드를 사용할 수 있습니다 레디 스 클라이언트이지만, 레디 스 1 개 연결 만 단일 스레드를 사용할 수 있습니다.

당신은 레디 스 클라이언트에 상추를 사용하는 것이 추천 할 수 있습니까? 왜?

해결법

  1. ==============================

    1.당신이 시간을 보내고 있기 때문에 레디 스 명령을 실행뿐만 아니라, (결과를 잡, 명령을 보내는) 데이터를 전송뿐만 아니라있다. 전송할 동안 단일 스레드 모드에서, 레디 스 작동하지 않습니다. 레디 스 작동하는 동안, 더 전송 occures 없습니다. 다중 연결이나 하나 개의 파이프 라인 연결은 모두 대역폭과 CPU 사이클을 포화 도움이 여기에 있습니다.

    당신이 시간을 보내고 있기 때문에 레디 스 명령을 실행뿐만 아니라, (결과를 잡, 명령을 보내는) 데이터를 전송뿐만 아니라있다. 전송할 동안 단일 스레드 모드에서, 레디 스 작동하지 않습니다. 레디 스 작동하는 동안, 더 전송 occures 없습니다. 다중 연결이나 하나 개의 파이프 라인 연결은 모두 대역폭과 CPU 사이클을 포화 도움이 여기에 있습니다.

    그리고 luttece은 속도에 대해이 아니다. 그것은 또한 당신이 비동기 및 반응 API와 코드가 잘 구성 할 수 있습니다.

    돌아 가기 성능 주제, 여기 스레딩 및 영향을 풀링의 일반적인 이해를 얻을 수있는 간단한 벤치 마크입니다. 참고 풀링 조금 느린 동안 (당신이 풀 작업에 시간을 보내고) 것을, 그것은 (에러가 다른 스레드에 영향을주지 않도록)과 MULTI 및 차단 명령을 사용하여 분리 작업을 할 수 있습니다.

    여기 내 결과가 (로컬 시스템은 코어 (4), 원격 시스템 CPU 느린 2 배 관한 있음) :

    Benchmark              (address)   Mode  Cnt      Score      Error  Units
    LettuceThreads.pooled     socket  thrpt   25  35389.995 ± 1325.198  ops/s
    LettuceThreads.pooled  localhost  thrpt   25  32075.870 ±  416.220  ops/s
    LettuceThreads.pooled     remote  thrpt   25   3883.193 ±   67.622  ops/s
    LettuceThreads.shared     socket  thrpt   25  39419.772 ± 1966.023  ops/s
    LettuceThreads.shared  localhost  thrpt   25  34293.245 ± 1737.349  ops/s
    LettuceThreads.shared     remote  thrpt   25   3919.251 ±   49.897  ops/s
    
    Benchmark              (address)   Mode  Cnt      Score      Error  Units
    LettuceThreads.pooled     socket  thrpt   25  56938.187 ± 2727.772  ops/s
    LettuceThreads.pooled  localhost  thrpt   25  49420.748 ± 2091.631  ops/s
    LettuceThreads.pooled     remote  thrpt   25   7791.706 ±  133.507  ops/s
    LettuceThreads.shared     socket  thrpt   25  81195.900 ± 1593.424  ops/s
    LettuceThreads.shared  localhost  thrpt   25  78404.688 ± 3878.044  ops/s
    LettuceThreads.shared     remote  thrpt   25   3992.023 ±   39.092  ops/s
    
    Benchmark              (address)   Mode  Cnt       Score      Error  Units
    LettuceThreads.pooled     socket  thrpt   25   87345.126 ± 8149.009  ops/s
    LettuceThreads.pooled  localhost  thrpt   25   75003.031 ± 4481.289  ops/s
    LettuceThreads.pooled     remote  thrpt   25   15807.410 ±  225.376  ops/s
    LettuceThreads.shared     socket  thrpt   25  169112.489 ± 3749.897  ops/s
    LettuceThreads.shared  localhost  thrpt   25  115464.778 ± 5099.728  ops/s
    LettuceThreads.shared     remote  thrpt   25    7952.492 ±  133.521  ops/s
    

    양상추 쓸모없는, 그래서 당신은 여기에 성능 저울 아주 잘와 스레드의 수를 볼 수 있습니다.

  2. from https://stackoverflow.com/questions/49409344/redis-is-single-thread-then-why-should-i-use-lettuce by cc-by-sa and MIT license