redis - 从redis中的集合A中删除两组A和B的交集

标签 redis

我在 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/

相关文章:

database - Redis DB,是否可以为某些数据库启用快照而不为其他数据库启用快照?

python - Redis 在位数组上的性能

logging - Redis - 定义最大日志文件长度

redis - docker-compose中的Redis主从设置-只读从

python - 每天使用 twisted 重置 redis 键

lua redis.call(...) 与 redis 中的相同调用不同

go - channel 卡住的 TCP 到 Redis 服务器

redis - 队列或其他方法来处理刻度数据?

linux - 如何使用 Redis 中的值与结果一详细信息之间的比较?

java - 关于jredis性能的问题