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怎麼存資料, 那就輕鬆很多了, 你基本上只用上考慮如何存資料比較合理就可以了