【问题标题】:MongoDB SocketIO pub sub performace over roomsMongoDB Socket IO pubsub 性能超过房间
【发布时间】:2014-01-28 06:16:14
【问题描述】:
我最近正在尝试使用 NodeJS、MongoDB 和 Socekt IO 的应用程序。
我刚刚听说可以使用 SocketIO 存储来缓存客户端之间交互的消息,我对此有些怀疑。
- 在性能方面哪个更好(SocketIO Rooms vs store pub sub)?
-
mong.socket.io 能满足我的要求吗?
- 在选择 pub-sub 或 Rooms 还有其他优势吗?
-
还是我完全错了?
【问题讨论】:
标签:
node.js
mongodb
socket.io
publish-subscribe
【解决方案1】:
我认为redis在这里会是更好的选择。
(https)://github.com/LearnBoost/Socket.IO/wiki/Configuring-Socket.IO
Redis 有一个很大的好处,它的实现已经支持原生的 pub/sub 功能。
(http)://redis.io/topics/pubsub
顺便说一句,redis 是存储 session 数据的好选择,因为它支持 key 的过期 ((http)://redis.io/commands/expire),这意味着数据库会自行清理。一个很大的优势是,redis 支持持久性,这听起来非常适合在崩溃后恢复例如消息或会话数据。
(http)://redis.io/topics/persistence
对于高工作量,还有一种复制方法:(http)://redis.io/topics/replication