首頁  >  問答  >  主體

多進程 - 多個進程去讀取redis訊息佇列是否會發生衝突?

問題

我建立多個行程去同時讀取redis做的訊息佇列 請問這個會發生讀取衝突麼? 原因是什麼呢?

PHP中文网PHP中文网2733 天前984

全部回覆(3)我來回復

  • 黄舟

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

    不會衝突,佇列中的每個元素只會被讀取一次。

    回覆
    0
  • 曾经蜡笔没有小新

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

    只是讀取沒問題。 。 。

    回覆
    0
  • 天蓬老师

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

    redis自己保證隊列讀寫的互斥。 redis是單線程,運作方式大概是這樣的。你的多進程讀取其實是可以並行發多個讀取請求包,這些請求包到達redis的socket buffer中,redis的處理是串行響應你的請求,無鎖。如果哪天redis改成多執行緒的方式,同樣可以透過加鎖互斥來保證佇列的讀取不會出事情。

    回覆
    0
  • 取消回覆