2011-12-01 41 views
0

已經使用了幾個星期了,我對它印象深刻;我已經實現了 的數量,並且使用最小的 命令組保存的時間非常長。redis集合和示例

使用維基百科我的數據,我做了一個小蜘蛛抓取所有維基百科的頁面 並下載..

我使用Redis的簡單地保持它的頁面已經被下載了一個紀錄, 防止重複。

由於每個頁面下載我執行:

sadd wiki pagename 

並檢查每一頁生存與:

sismember wiki pagename 

哇,抱歉瞭解釋。我的問題是,怎樣做以下 命令可以使用或有用。

sdiff 
sinter 
sunion 

那麼sdiff =減去多組..

回答

0

我認爲sdiffsintersunion合理地與redis的commands文檔中的示例說明。這些都是經典的group數學運算,這些運算在需要處理多個可能由相似或相同項目組成的集合中的數據的各種情況下非常有用。

0

假設你有一家書店,你想知道哪些流派是相關的,所以你可以爲相關流派的書籍提供推薦。並不是現在經典的「購買這種產品的顧客也購買了X」,而是更喜歡向那些對科幻小說感興趣的人推薦幻想書。

做到這一點的一種方法是爲每個客戶分配一個ID,並且爲每個購買的書將該ID放入代表流派的集合中。如果你想知道哪些流派是相關的,那麼你可以使用集合操作來找到有趣的指標。其中之一是加卡指數,交叉口的大小除以工會的大小 - 換句話說,至少購買每種類型書籍的顧客的數量除以顧客的數量除以顧客的數量任何類型的書。較低的索引意味着較少的相似性,較高的索引意味着較近的相似性零指數意味着沒有人從這兩種類型中購買一本書,並且其中一個指數意味着每個購買一種類型書籍的人也都購買了另一本書。

你也可以用差集來計算誰買了一本書,在一個流派並沒有其他的買了一本書(如果兩個類型都差不多,也許建議這些,他們應該嘗試的客戶數量來自其他類型的書)。