计算两组之间的差异(排序和简单)

时间:2011-04-15 21:37:59

标签: redis

有没有办法计算两个有序集合(zset)之间的差异,还是我必须为此使用简单集合?

问题:

  1. 设置 F 包含已排序ID列表(已排序集,完整列表)
  2. 设置 K 包含id的列表(简单集,F的子集)
  3. 我想按顺序检索 F 中的每个条目,而不是 K

    这是否可以单独使用Redis或我是否必须对应用程序进行计算?如果是,最好的方法是什么?

    编辑:SDIFF不适合此目的,因为它不允许排序集。

1 个答案:

答案 0 :(得分:5)

将F复制为简单集。我们称之为G.现在执行SDIFF。

或者...

将F复制为有序集。我们称之为G.迭代K并从G中删除每个元素。

SDIFF确实应该适用于有序集,常规集或组合。但是,在这个时候,它没有。

此外,如果F非常大,当您复制它时,您可能会看到一些性能命中。在这种情况下,在Redis数据库中创建一个集合G,它在更新K时更新。也就是说,F和G最初是相等的。在向K添加元素时,请从G中删除元素。