我不確定我是否理解使用redis pub/sub和使用node/express事件發射器之間的差異。 pub/sub以任何方式與我的數據庫進行交互?在哪些情況下我會使用一種嗎?Redis pub/sub vs node事件發射器
1
A
回答
6
Redis允許您構建快速而強大的進程間通信。 Redis pub/sub使用您的Redis進程傳遞消息,但它不會影響存儲在Redis DB中的數據。
事件發射器只能在單節點進程內工作。因此,即使您擁有單個節點羣集,一個工作人員發出的事件也不會被另一個人看到。
因此,事件發射器是進程內通信的最佳選擇。但是如果你需要進程間通信,你應該使用Redis。
2
如果Redis是您的數據庫,則發佈/訂閱是與數據庫交互(但不是存儲的數據),因爲它是處理髮布到訂閱通道的執行的Redis。我不一定會說你會用另一種。 Redis客戶端將使用事件發送器向您的節點應用程序發送Redis已發佈消息的信號。
要真正回答你的問題,這取決於你使用的是什麼。如果您只有一個節點實例在一臺服務器上運行,那麼事件發射器可能會作爲您的消息傳遞傳輸。但是,如果您有多個節點實例或運行在多個服務器上的多個實例,則可以擴展事件發射器以將其消息發佈到Redis,從而允許其他服務器上運行的其他節點實例響應該事件。
另一個很好的用例是socket.io。如果您說使用套接字在聊天室之間進行廣播的聊天室,那麼如果您的聊天應用程序分佈在多個服務器上,則需要利用Redis pub/sub。
相關問題
- 1. Node js redis socket.io pubsub實時更新
- 2. PubSub的斯卡拉Redis的
- 3. 彗星vs pubsub ..?
- 4. 事件不發射
- 5. 發射事件不會發射
- 6. node-redis client.auth回調是否替代ready事件?
- 7. 建議 - Redis或RabbitMQ PubSub - 拍賣服務
- 8. 藍鳥承諾與事件發射器
- 9. 將事件從一個事件發射器轉發到另一個事件
- 10. Redis配置pubsub和緩存在AWS EC2
- 11. node-imap:imap.end()觸發的事件是什麼?
- 12. seneca redis pubsub transport和seneca redis queue之間的區別是什麼?
- 13. 刪除事件偵聽器的當前發射事件
- 14. Sharepoint事件接收器事件不發射
- 15. Redis eval命令vs事務命令
- 16. Angular2:@Output和事件發射
- 17. Silverlight 4:事件不發射?
- 18. 從socketIo發射事件python
- 19. WPF路由事件發射?
- 20. Default.aspx不發射事件
- 21. 在Node.js中發射事件
- 22. 丟失事件不發射
- 23. CAsyncSocket不發射事件?
- 24. 事件發射趕不上
- 25. FileSystemWatcher不發射事件
- 26. Listbox事件發射奇怪
- 27. 節點事件發射
- 28. Redis vs Kafka vs 1MB郵件的RabbitMQ
- 29. 文本動畫不發生在事件發射(或事件不發射)
- 30. node redis visitor counter -throwing error
這就是我想要做的:http://stackoverflow.com/questions/15866568/redis-node-js-chaining-calls-to-get-user-data – 2013-04-07 19:06:31