84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
我创建多个进程去同时读取redis做的消息队列 请问这个会发生读取冲突么? 原因是什么呢?
认证高级PHP讲师
충돌이 없습니다. 대기열의 각 요소는 한 번만 읽혀집니다.
읽는 것만으로도 문제 없습니다. . .
Redis 자체는 대기열 읽기 및 쓰기의 상호 배제를 보장합니다. Redis는 단일 스레드이며 대략 다음과 같이 작동합니다. 다중 프로세스 읽기는 실제로 여러 읽기 요청 패킷을 병렬로 보낼 수 있습니다. 이러한 요청 패킷은 Redis의 소켓 버퍼에 도착하여 잠금 없이 요청에 순차적으로 응답합니다. 어느 날 redis가 멀티스레딩으로 변경되면 큐를 읽을 때 아무 일도 일어나지 않도록 뮤텍스를 잠글 수도 있습니다.
충돌이 없습니다. 대기열의 각 요소는 한 번만 읽혀집니다.
읽는 것만으로도 문제 없습니다. . .
Redis 자체는 대기열 읽기 및 쓰기의 상호 배제를 보장합니다. Redis는 단일 스레드이며 대략 다음과 같이 작동합니다. 다중 프로세스 읽기는 실제로 여러 읽기 요청 패킷을 병렬로 보낼 수 있습니다. 이러한 요청 패킷은 Redis의 소켓 버퍼에 도착하여 잠금 없이 요청에 순차적으로 응답합니다. 어느 날 redis가 멀티스레딩으로 변경되면 큐를 읽을 때 아무 일도 일어나지 않도록 뮤텍스를 잠글 수도 있습니다.