从Redis的集合A中删除两个集合A和B的交集

时间:2019-07-06 17:36:10

标签: redis

我在Redis中有两组-ProcessedUrls和PendingUrls。 我想在一个Redis查询中执行以下操作: 从待处理集中删除待处理和已处理集中的所有键,然后返回待处理集中的100(或任何其他数字-X)个值。

我应该通过Lua(redis服务器端脚本语言)来做到这一点吗? 我认为有一种更简单的方法。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可以使用SDIFFSTORE命令来获取差异项并将其保存回待处理的集中:

SDIFFSTORE PendingUrls PendingUrls ProcessedUrls

然后,您可以使用SRANDMEMBER PendingUrls N命令随机获得待定集中的N个成员。

如果要使这两个操作原子化,请将它们包装到Lua脚本或事务中。