redis - 计算两个集合(排序的和简单的)之间的差异

标签 redis

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

问题:

  1. Set F 包含已排序 id 的列表(已排序集,完整列表)
  2. 集合 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/

相关文章:

redis - 如何知道jedis消息有没有推送

node.js - redis session 在服务器上不工作

node.js - 为什么这个简单的 node.js 代码会卡住?

Redis 与 Hazelcast 作为 session 存储

redis - 我可以使用 twemproxy 通过 redis 队列大小进行负载平衡吗?

redis - 将 ZRANGEBYSCORE 的结果插入集合中

go - 如何启动多名机械 worker ?

node.js - 公牛竞技场表演公牛排队

redis - 单分片 Redis Cluster 怎么会出现 CROSSLOT 错误?

database - 我可以使两列彼此唯一吗?或者在redis中使用复合主键?