我使用redis来存储集合中的项目列表。我定期向集合中添加一个非常相似的列表,显然,排序集只会添加新项目(如果它们尚不存在)。有没有办法获得刚刚添加的新项目列表?那些尚未存在于集合中的那些?
Danke schoen。
答案 0 :(得分:3)
ZADD
命令,如果使用一个分数/成员对调用,如果成员是新的则返回1,如果已存在,则返回0。你可以用它。逐个添加元素并检查返回值。
答案 1 :(得分:1)
除了按照Sergio的描述迭代新列表之外,您还可以将已排序集中的键存储在一个集合中,将新列表存储在一个集合中,并对它们执行sdiff或sdiffstore以获得差异。
哪条路线更好是基于您的代码和数据集的判断。如果新列表很短,如果可能使用像Sergio描述的zadd命令进行简单迭代。否则我会测试哪个更适合我的用例。