찾다

 >  Q&A  >  본문

다중 프로세스 - 여러 프로세스가 Redis 메시지 대기열을 읽을 때 충돌이 발생합니까?

질문

redis에서 만든 메시지 대기열을 동시에 읽기 위해 여러 프로세스를 만들었습니다. 이로 인해 읽기 충돌이 발생합니까? 이유는 무엇입니까?

PHP中文网PHP中文网2813일 전1040

모든 응답(3)나는 대답할 것이다

  • 黄舟

    黄舟2017-04-27 09:05:23

    충돌이 없습니다. 대기열의 각 요소는 한 번만 읽혀집니다.

    회신하다
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-04-27 09:05:23

    읽는 것만으로도 문제 없습니다. . .

    회신하다
    0
  • 天蓬老师

    天蓬老师2017-04-27 09:05:23

    Redis 자체는 대기열 읽기 및 쓰기의 상호 배제를 보장합니다. Redis는 단일 스레드이며 대략 다음과 같이 작동합니다. 다중 프로세스 읽기는 실제로 여러 읽기 요청 패킷을 병렬로 보낼 수 있습니다. 이러한 요청 패킷은 Redis의 소켓 버퍼에 도착하여 잠금 없이 요청에 순차적으로 응답합니다. 어느 날 redis가 멀티스레딩으로 변경되면 큐를 읽을 때 아무 일도 일어나지 않도록 뮤텍스를 잠글 수도 있습니다.

    회신하다
    0
  • 취소회신하다