如果我有多個用戶通過redis發佈到某個頻道,這是如何工作的?比方說,我有一個PHP腳本在數據庫中添加一條記錄。 2個用戶都訂閱了同一個頻道,並且都同時向數據庫中輸入記錄。兩者都使用php腳本向db中提交條目,一旦完成,我使用php-redis發佈到頻道。但是,如果兩個或更多人同時進行,會發生什麼? redis是否「鎖定」第一個請求,然後「解鎖」下一個請求?Redis子/ pub多個發佈一次
1
A
回答
4
的Redis是單線程的,因此一個指令必須發生第一,沒有必要鎖定。您通常不會注意到阻塞,因爲單個請求所花費的大部分時間都是網絡延遲,而不是實際處理命令。
0
正如你應該寫你的聽衆使得它們對於任何給定信道上可以重複的郵件不進行任何假設,他們不承擔過多個渠道的消息的任何特定的順序一個實際問題。
換句話說,如果你有多個進程產生消息給一個給定的通道,那麼你不應該假設那些會發布給定的消息,或者多個這樣的發佈者可能有比賽和發佈某種類型的副本。如果您需要這樣的語義,您可能需要使用Redis(原子)原語(如SETNX或HSETNX)來實現自己的鎖定。
相關問題
- 1. Redis Pub/Sub不發佈消息
- 2. 多個生產者和多個消費者的Redis pub子
- 3. Redis - Pub/Sub Internals
- 4. Dart Pub Pub發佈認證後出錯
- 5. Redis Sub/Pub - 獲取最新發布的內容?
- 6. Redis Pub子類:設計模式
- 7. Pub/Sub和Redis Clustering
- 8. redis pub sub和ttl
- 9. 的Redis的pub/sub
- 10. Socket.io和Redis pub/sub
- 11. Redis pub/sub限制
- 12. Redis pub/sub vs node事件發射器
- 13. Redis -Pub \ Sub - 超時連接到Redis
- 14. Redis Pub/Sub有用性?
- 15. Redis Pub/Sub與可靠性
- 16. node.js中的socket.io redis pub/sub
- 17. Stackexchange.Redis,我可以一次發佈到多個頻道嗎?
- 18. redis/webdis&storm,用http發佈帖子
- 19. 多次發佈一個通知(一個觀察者)
- 20. MVC - Ajax.BeginForm - 發佈多次
- 21. .Net消息發佈pub/sub模式
- 22. Redis發佈/訂閱 - 同一個進程監聽一個頻道
- 23. 將Redis用於Pub Pub Sub。 RabbitMQ的優勢/劣勢
- 24. 零MQ發佈者訂閱者(pub/sub)
- 25. voryx thruway多次發佈
- 26. facebook多次發佈到牆
- 27. TeamCity多次發佈NuGet包
- 28. redis積累併發布一組操作
- 29. 陣列數據格式redis pub子頻道
- 30. Socket.io和Redis Pub/Sub不工作
Redis中的所有操作都是「原子」 –