多进程 - 多个进程去读取redis消息队列是否会发生冲突?
PHP中文网
PHP中文网 2017-04-27 09:03:23
0
3
1006

问题

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

PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(3)
黄舟

Aucun conflit, chaque élément de la file d'attente ne sera lu qu'une seule fois.

曾经蜡笔没有小新

Pas de problème, il suffit de lire. . .

Peter_Zhu

Redis lui-même garantit l'exclusion mutuelle de la lecture et de l'écriture en file d'attente. Redis est monothread et fonctionne à peu près comme ceci. Votre lecture multi-processus peut en fait envoyer plusieurs paquets de requêtes de lecture en parallèle. Ces paquets de requêtes arrivent dans le tampon de socket de redis. Le traitement de redis consiste à répondre à votre requête en série sans verrous. Si Redis passe un jour en multi-thread, vous pouvez également verrouiller le mutex pour vous assurer que rien ne se passe lors de la lecture de la file d'attente.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal