有没有办法计算两个排序集 (zset) 之间的差异,还是我必须为此使用简单集?
问题:
- Set F 包含已排序 id 的列表(已排序集,完整列表)
- 集合 K 包含一个 id 列表(简单集合,F 的子集)
我想按顺序检索 F 中的每个条目,而不是 K。
单独使用 Redis 是否可行,还是我必须在应用程序上进行计算?如果是,最好的方法是什么?
编辑:SDIFF不适合这个目的,因为它不允许排序集。
最佳答案
复制 F 作为一个简单的集合。我们称之为 G。现在执行 SDIFF。
或者...
将 F 复制为一个有序集。我们称它为 G。遍历 K 并从 G 中删除每个元素。
SDIFF 确实适用于排序集、规则集或组合。但是,目前还没有。
此外,如果 F 非常大,您在复制它时可能会遇到一些性能问题。在这种情况下,在您的 Redis 数据库中创建一个集合 G,它会在 K 更新时更新。也就是说,F 和 G 最初是相等的。在向 K 添加元素时,从 G 中删除元素。
关于redis - 计算两个集合(排序的和简单的)之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5682610/