聊天系統的mongodb設計問題
天蓬老师
天蓬老师 2017-04-24 09:12:18
0
4
679

我想用mongodb加nodejs做一個聊天系統 他有加入好友和給好友分組的功能 不知道這樣的mongodb要怎麼設計比較好

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(4)
黄舟
{
    _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,對方一上線就檢索出來未讀的訊息,並發給對方

Peter_Zhu

redis做主扛,pgsql做備份就夠了。 mongodb做這個。 。 。 。 。還是不太適合這個場景吧。

左手右手慢动作

任何持久化的資料庫都不會在這個需求上表現的讓你滿意, 你需要redis來緩衝, 甚至也可以讓redis來做持久化(具體方案可以網上搜索一下, 我記得陌陌的技術人員做過分享)
至於緩衝後mongodb怎麼存資料, 那就輕鬆很多了, 你基本上只用上考慮如何存資料比較合理就可以了

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板