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

And*_*dre 12 redis

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

问题:

  1. 集合F包含已排序的ID列表(已排序集,完整列表)
  2. K包含id的列表(简单集,F的子集)

我想按顺序检索F中的每个条目,这不在K中.

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

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

BMi*_*ner 5

将F的副本复制为一个简单的集合.我们称之为G.现在执行SDIFF.

要么...

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

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

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