我们有一个具有聊天功能的 iOS 应用程序。目前它适用于长轮询。现在我们正在尝试修改它以使用套接字。关于套接字,我们已经开始进行研究,似乎最好的选择之一是将 nodejs 与 socket.io 一起使用。然后我们使用 redis pub/sub 来管理消息传递和存储。
经过对 redis 的一些研究,推荐的用法表明存储的数据应该适合内存。但是,我们有一个有点大的数据库。我们想存储整个聊天记录。所以我们开始计划使用redis作为缓存数据库,将在线用户的聊天记录(可能不是全部)存储起来,并在从redis到mongodb/simpledb(或两者都立即)下线后写入实际对话).
所以总结一下,我们即将决定使用nodejs和redis pub/sub来传递消息,redis作为缓存数据库,mongodb来存储整个对话。
你觉得这个设计怎么样?这是可以接受的吗?或者,如果您有更好的建议,能否请您再解释一下?
提前致谢。
最佳答案
对于聊天系统,您的想法很宏大。如果您认为您将达到 100 万用户,那就去做吧。还要考虑可用性 - 您的系统将如何处理机器故障?
关于node.js - 如何使用 nodejs、redis 和 mongodb 设计基于聊天的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10043663/