粉絲【關注】是種高頻的行爲,比如csdn中關注。
【誰】關注了你
如果在高併發下,粉絲【關注】操作和數據庫實時交互,這種設計很不合理。
用redis去存儲【關注】數據,然後定期任務(比如1個小時)去更新一次數據庫
redis裏有5種常用的數據結構類型,分別是: String(字符串), List(列表), Set(集合),Hash(鍵值對),ZSet(有序集合)。
分析關注這種操作行爲,Hash類型最合適。
【關注】一般有2種行爲:
1. 記錄關注人,被關注人,關注狀態(關注,取關) 。
這種設計思路是: key是關注人和被關注人的id,用 "-" 隔開,value中,status 1是關注,0是取關,time是操作日期。
2. 關注了多少次,即有多少粉絲
這種設計思路是: key是主人的id,value是粉絲數。
上述是【關注】數據在redis中存儲數據結構的設計,其實,【點贊】的設計思路類似,可以參考以上。