从redis set中返回新的独特物品

时间:2012-07-24 22:27:08

标签: redis

我使用redis来存储集合中的项目列表。我定期向集合中添加一个非常相似的列表,显然,排序集只会添加新项目(如果它们尚不存在)。有没有办法获得刚刚添加的新项目列表?那些尚未存在于集合中的那些?

Danke schoen。

2 个答案:

答案 0 :(得分:3)

ZADD命令,如果使用一个分数/成员对调用,如果成员是新的则返回1,如果已存在,则返回0。你可以用它。逐个添加元素并检查返回值。

答案 1 :(得分:1)

除了按照Sergio的描述迭代新列表之外,您还可以将已排序集中的键存储在一个集合中,将新列表存储在一个集合中,并对它们执行sdiff或sdiffstore以获得差异。

哪条路线更好是基于您的代码和数据集的判断。如果新列表很短,如果可能使用像Sergio描述的zadd命令进行简单迭代。否则我会测试哪个更适合我的用例。