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