我不确定我是否理解使用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