84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
我建立多個行程去同時讀取redis做的訊息佇列 請問這個會發生讀取衝突麼? 原因是什麼呢?
认证高级PHP讲师
不會衝突,佇列中的每個元素只會被讀取一次。
只是讀取沒問題。 。 。
redis自己保證隊列讀寫的互斥。 redis是單線程,運作方式大概是這樣的。你的多進程讀取其實是可以並行發多個讀取請求包,這些請求包到達redis的socket buffer中,redis的處理是串行響應你的請求,無鎖。如果哪天redis改成多執行緒的方式,同樣可以透過加鎖互斥來保證佇列的讀取不會出事情。
不會衝突,佇列中的每個元素只會被讀取一次。
只是讀取沒問題。 。 。
redis自己保證隊列讀寫的互斥。 redis是單線程,運作方式大概是這樣的。你的多進程讀取其實是可以並行發多個讀取請求包,這些請求包到達redis的socket buffer中,redis的處理是串行響應你的請求,無鎖。如果哪天redis改成多執行緒的方式,同樣可以透過加鎖互斥來保證佇列的讀取不會出事情。