计算两个集合(排序且简单)之间的差异。

12

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

问题:

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

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

这是否仅使用Redis就可以完成?还是我必须在应用程序上进行计算?如果是,最好的方法是什么?

编辑:SDIFF不适用于此目的,因为它不允许使用有序集合。

1个回答

5

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

或者...

将 F 复制为排序集合。我们称之为 G。遍历 K 并从 G 中删除每个元素。

SDIFF 应该能够处理排序集合、普通集合或组合。但是,目前它还不能。

此外,如果 F 很大,当你复制它时可能会出现一些性能问题。在这种情况下,在 Redis DB 中创建一个集合 G,并在更新 K 时更新它。也就是说,F 和 G 最初相等。当你向 K 添加元素时,从 G 中删除该元素。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接