>  Q&A  >  본문

多进程 - 多个进程去读取redis消息队列是否会发生冲突?

问题

我创建多个进程去同时读取redis做的消息队列 请问这个会发生读取冲突么? 原因是什么呢?

PHP中文网PHP中文网2733일 전985

모든 응답(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
  • 취소회신하다