搜尋

首頁  >  問答  >  主體

聊天系統的mongodb設計問題

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

天蓬老师天蓬老师2775 天前660

全部回覆(4)我來回復

  • 黄舟

    黄舟2017-04-24 09:14:18

    {
        _id:,
        nick:'',
        account:'',
        password:'',
        friends:[
            {grounp:'分组1',list:[用户ID1,用户ID2]},
            {grounp:'分组2',list:[用户ID3,用户ID4]}
        ]
    }
    

    人家明明問的是mongo,樓上的各位卻回答redis,redis有redis的用處,它用在一維線性數據上很好使,但是像這種類似於關係型的數據,還是得用mongo。

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-24 09:14:18

    資料庫方面:mongodb還是不夠快,畢竟考慮到持久化。推薦你加一層緩存,採用redis的有序集合會是不錯的選擇。
    程式上,透過websocket實現,這樣web/ iOS/ Android都可以通訊,客戶端和服務端建立連線之後,客戶端把訊息發給服務端並存到redis,再透過伺服器發給線上的目標好友。
    如果對方離線,就緩存在redis,對方一上線就檢索出來未讀的訊息,並發給對方

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-24 09:14:18

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

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-24 09:14:18

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

    回覆
    0
  • 取消回覆