我正在使用 redis 将项目列表存储在一组中。我定期向集合添加一个非常相似的列表,显然,排序集合仅在新项目不存在时才添加它们。有没有办法获得刚刚添加的新项目列表?那些不存在于集合中的?
丹科舒恩。
我正在使用 redis 将项目列表存储在一组中。我定期向集合添加一个非常相似的列表,显然,排序集合仅在新项目不存在时才添加它们。有没有办法获得刚刚添加的新项目列表?那些不存在于集合中的?
丹科舒恩。
ZADD
command, if called with one score/member pair, returns 1 if member was new and 0 if it already existed. You can use this. Add elements one by one and check return values.
除了按照 Sergio 的描述迭代新列表之外,您还可以将排序集中的键存储在一个集合中,将新列表存储在一个集合中,并对它们执行 sdiff 或 sdiffstore 以获得差异。
哪条路线更好是根据您的代码和数据集对您的判断。如果新列表很短,可能会使用像 Sergio 描述的 zadd 命令进行简单迭代。否则我会测试看看哪个更适合我的用例。