Maison  >  Questions et réponses  >  le corps du texte

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

问题

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

PHP中文网PHP中文网2733 Il y a quelques jours980

répondre à tous(3)je répondrai

  • 黄舟

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

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

    répondre
    0
  • 曾经蜡笔没有小新

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

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

    répondre
    0
  • 天蓬老师

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

    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.

    répondre
    0
  • Annulerrépondre