84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
我想用mongodb加nodejs做一个聊天系统 他有添加好友和给好友分组的功能 不知道这样的mongodb要怎么设计比较好
欢迎选择我的课程,让我们一起见证您的进步~~
{ _id:, nick:'', account:'', password:'', friends:[ {grounp:'分组1',list:[用户ID1,用户ID2]}, {grounp:'分组2',list:[用户ID3,用户ID4]} ] }
人家明明问的是mongo,楼上的各位却回答redis,redis有redis的用处,它用在一维线性数据上很好使,但是像这种类似于关系型的数据,还是得用mongo。
数据库方面:mongodb还是不够快,毕竟考虑到持久化。推荐你加一层缓存,采用redis的有序集合会是不错的选择。 程序上,通过websocket实现,这样web/ iOS/ Android都可以通讯,客户端和服务端建立连接之后,客户端把消息发给服务端并存到redis,再通过服务器发给在线的目标好友。 如果对方离线,就缓存在redis,对方一上线就检索出来未读的消息,并发给对方
redis做主扛,pgsql做备份就够了。mongodb做这个。。。。。还是不太合适这个场景吧。
任何持久化的数据库都不会在这个需求上表现的让你满意, 你需要redis来缓冲, 甚至也可以让redis来做持久化(具体方案可以网上搜索一下, 我记得陌陌的技术人员做过分享) 至于缓冲后mongodb怎么存数据, 那就轻松很多了, 你基本只用上考虑如何存数据比较合理就可以了
人家明明问的是mongo,楼上的各位却回答redis,redis有redis的用处,它用在一维线性数据上很好使,但是像这种类似于关系型的数据,还是得用mongo。
数据库方面:mongodb还是不够快,毕竟考虑到持久化。推荐你加一层缓存,采用redis的有序集合会是不错的选择。
程序上,通过websocket实现,这样web/ iOS/ Android都可以通讯,客户端和服务端建立连接之后,客户端把消息发给服务端并存到redis,再通过服务器发给在线的目标好友。
如果对方离线,就缓存在redis,对方一上线就检索出来未读的消息,并发给对方
redis做主扛,pgsql做备份就够了。mongodb做这个。。。。。还是不太合适这个场景吧。
任何持久化的数据库都不会在这个需求上表现的让你满意, 你需要redis来缓冲, 甚至也可以让redis来做持久化(具体方案可以网上搜索一下, 我记得陌陌的技术人员做过分享)
至于缓冲后mongodb怎么存数据, 那就轻松很多了, 你基本只用上考虑如何存数据比较合理就可以了