2012-07-24 31 views
1

我正在使用redis來存儲集合中的項目列表。我定期向該集合添加一個非常相似的列表,顯然,排序後的集合只會添加新項目(如果它們尚不存在)。有沒有辦法獲得剛剛添加的新項目列表?那些在集合中不存在的那些?從redis集返回新的獨特項目

Danke schoen。

回答

3

ZADD命令(如果使用一個樂譜/成員對調用)返回1(如果成員是新成員),如果它已經存在則返回0。你可以使用這個。逐個添加元素並檢查返回值。

+0

同意Sergio +1 – 2012-07-24 22:31:36

1

除了按照Sergio的描述迭代新列表之外,您還可以將已排序集中的密鑰存儲在一個集合中,將新列表存儲在一個集合中,然後對其執行sdiff或sdiffstore以獲得差異。

哪條路線會更好是基於您的代碼和數據集的判斷呼叫。如果新列表很短,如果可能使用像Sergio描述的zadd命令進行簡單的迭代。否則,我會測試看看哪個更適合我的用例。

+0

我喜歡..謝謝澄清! – Crossdiver 2012-07-25 23:54:44