ホームページ  >  に質問  >  本文

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

问题

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

PHP中文网PHP中文网2733日前986

全員に返信(3)返信します

  • 黄舟

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

    競合は発生せず、キュー内の各要素は 1 回だけ読み取られます。

    返事
    0
  • 曾经蜡笔没有小新

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

    読むだけなら問題ありません。 。 。

    返事
    0
  • 天蓬老师

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

    Redis 自体は、キューの読み取りと書き込みの相互排他を保証します。 Redis はシングルスレッドであり、おおよそ次のように動作します。マルチプロセス読み取りでは、実際には複数の読み取りリクエスト パケットを並行して送信できます。これらのリクエスト パケットは、redis のソケット バッファーに到着し、ロックなしでリクエストに逐次応答します。いつか Redis がマルチスレッドに変更された場合は、キューの読み取り時に何も起こらないようにミューテックスをロックすることもできます。

    返事
    0
  • キャンセル返事