我在 Redis 中有两组 - ProcessedUrls 和 PendingUrls。 我想在一个 redis 查询中执行以下操作: 从 Pendings 集中删除 pending 和 processed 集中的所有键,然后返回 Pending 集的 100(或任何其他数字 - X)值。
我应该通过 Lua(redis 服务器端脚本语言)来完成吗? 我认为有一种更简单的方法。
感谢帮助
最佳答案
您可以使用 SDIFFSTORE
命令获取差异项并将其保存回挂起集:
SDIFFSTORE PendingUrls PendingUrls ProcessedUrls
然后可以使用SRANDMEMBER PendingUrls N
命令随机获取pending set中的N
个成员。
如果你想使这两个操作成为原子操作,将它们包装到 Lua 脚本或事务中。
关于redis - 从redis中的集合A中删除两组A和B的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56916298/