搜尋

首頁  >  問答  >  主體

redis - 新浪微博裡的共同好友的查找是如何實現的

今天看了一個老視頻:http://v.youku.com/v_show/id_XMzM3NjgzMjY4.html
裏麵說到這個問題“A關注了B,B也關注A,要得到兩個人的共同好友,好友取交集。如果A是一個粉絲有3000萬的大V,而B是粉絲隻有1000的屌絲,要找出他們的共同好友,應該怎麼做?”
視頻看完了,我卻米有找到答案。大家幫忙分析下。

首先得是redis,第二,得合理,不能用戶查看的時候等待個四五秒。

伊谢尔伦伊谢尔伦2798 天前1309

全部回覆(3)我來回復

  • 大家讲道理

    大家讲道理2017-04-21 11:18:41

    這個計算過程不是一次http操作就行的,而且也不是能夠立即計算出來,除非灰常NB的演算法工程師和資料工程師。
    這些東西都是在後台慢慢計算,不然那些資料探勘工程師靠什麼吃飯,當有計算出結果的時候就開始向你推送,這個時候就能夠體現伺服器端用靜態語言並且常駐記憶體的好處了。

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-21 11:18:41

    看了一下視頻,人家說的很清楚了:預先計算。 (從10分30秒開始看)
    就是關注(插入資料)的時候,就計算一下。

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-21 11:18:41

    利用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的交集,是不是就能得到共同關注的用戶?剩餘的交集差集相信不用我說,你應該也會了吧

    回覆
    0
  • 取消回覆