黄舟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。
PHP中文网2017-04-24 09:14:18
資料庫方面:mongodb還是不夠快,畢竟考慮到持久化。推薦你加一層緩存,採用redis的有序集合會是不錯的選擇。
程式上,透過websocket實現,這樣web/ iOS/ Android都可以通訊,客戶端和服務端建立連線之後,客戶端把訊息發給服務端並存到redis,再透過伺服器發給線上的目標好友。
如果對方離線,就緩存在redis,對方一上線就檢索出來未讀的訊息,並發給對方
ringa_lee2017-04-24 09:14:18
任何持久化的資料庫都不會在這個需求上表現的讓你滿意, 你需要redis來緩衝, 甚至也可以讓redis來做持久化(具體方案可以網上搜索一下, 我記得陌陌的技術人員做過分享)
至於緩衝後mongodb怎麼存資料, 那就輕鬆很多了, 你基本上只用上考慮如何存資料比較合理就可以了