我不確定我是否理解使用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. Node.js redis pubsub
- 3. PubSub的斯卡拉Redis的
- 4. Angular 2事件發射器?
- 5. 來自redis pubsub的微服務handeling事件
- 6. Node.js:會話無法在redis pubsub事件內部更新?
- 7. 彗星vs pubsub ..?
- 8. 蟒蛇redis pubsub阻止
- 9. PubSub上的節點Redis回調
- 10. Node&Redis隊列
- 11. 節點JS Socket.IO發射器(和redis)
- 12. Node-PerfectAPI vs Restify.js vs ExpressJS vs Node-APIServer
- 13. 前進的Redis PubSub的快遞
- 14. 事件發射犯規發出事件
- 15. 事件不發射
- 16. 通過Socket.io使用Redis作爲PubSub
- 17. node redis zadd key error
- 18. 發射事件不會發射
- 19. 建議 - Redis或RabbitMQ PubSub - 拍賣服務
- 20. node-redis client.auth回調是否替代ready事件?
- 21. 事件發射器構造函數
- 22. 事件發射器在nodeload警告
- 23. 事件沒有發射html5播放器
- 24. 角度:未收到事件發射器
- 25. 事件發射器內存泄漏
- 26. AngularJS - 事件偵聽器發射兩次
- 27. 藍鳥承諾與事件發射器
- 28. 是否可以阻止Redis pubsub?
- 29. Redis的身份驗證的PubSub在vertx
- 30. 將事件從一個事件發射器轉發到另一個事件
這就是我想要做的:http://stackoverflow.com/questions/15866568/redis-node-js-chaining-calls-to-get-user-data – 2013-04-07 19:06:31