84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
今天看了一个老视频:http://v.youku.com/v_show/id_XMzM3NjgzMjY4.html里面说到这个问题“A关注了B,B也关注A,要得到两个人的共同好友,好友取交集。如果A是一个粉丝有3000万的大V,而B是粉丝只有1000的屌丝,要找出他们的共同好友,应该怎么做?”视频看完了,我却米有找到答案。大家帮忙分析下。
首先得是redis,第二,得合理,不能用户查看的时候等待个四五秒。
小伙看你根骨奇佳,潜力无限,来学PHP伐。
這個計算過程不是一次http操作就行的,而且也不是能夠立即計算出來,除非灰常NB的演算法工程師和資料工程師。這些東西都是在後台慢慢計算,不然那些資料探勘工程師靠什麼吃飯,當有計算出結果的時候就開始向你推送,這個時候就能夠體現伺服器端用靜態語言並且常駐記憶體的好處了。
看了一下視頻,人家說的很清楚了:預先計算。 (從10分30秒開始看)就是關注(插入資料)的時候,就計算一下。
利用redis的sets很容易。例:user:1:fans [2,3,4] //追蹤使用者1的粉絲user:1:follows [2,5,7,8] //使用者1關注的
user:2:fans [1,3,4] //追蹤使用者2的粉絲user:2:follows [1,7,8] //使用者2關注的
用戶1登陸的時候,取一下user:1:fans與user:1:follow的交集,能得到好友關係,那取一下user:1:follows與user:2:follows的交集,是不是就能得到共同關注的用戶?剩餘的交集差集相信不用我說,你應該也會了吧
這個計算過程不是一次http操作就行的,而且也不是能夠立即計算出來,除非灰常NB的演算法工程師和資料工程師。
這些東西都是在後台慢慢計算,不然那些資料探勘工程師靠什麼吃飯,當有計算出結果的時候就開始向你推送,這個時候就能夠體現伺服器端用靜態語言並且常駐記憶體的好處了。
看了一下視頻,人家說的很清楚了:預先計算。 (從10分30秒開始看)
就是關注(插入資料)的時候,就計算一下。
利用redis的sets很容易。
例:
user:1:fans [2,3,4] //追蹤使用者1的粉絲
user:1:follows [2,5,7,8] //使用者1關注的
user:2:fans [1,3,4] //追蹤使用者2的粉絲
user:2:follows [1,7,8] //使用者2關注的
用戶1登陸的時候,取一下user:1:fans與user:1:follow的交集,能得到好友關係,那取一下user:1:follows與user:2:follows的交集,是不是就能得到共同關注的用戶?剩餘的交集差集相信不用我說,你應該也會了吧