SPOP
删除一组成员后,返回一个或多个随机成员。如果最后一个成员被弹出,则删除集合。
语法
SPOP key [count]
引入版本:1.0.0
复杂度摘要:O(1)
从 key 处的设置值存储中删除并返回一个或多个随机成员。
此操作类似于 SRANDMEMBER,从集合中返回一个或多个随机元素,但不将其删除。
默认情况下,该命令从集合中弹出单个成员。当提供可选的 count 参数时,回复将最多包含 count 成员,具体取决于集合的基数。
必需参数
key
保存该集合的键的名称。
可选参数
count
要弹出的成员数量。如果没有它,单个成员就会被弹出。
示例
redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myset "three"
(integer) 1
redis> SPOP myset
redis> SMEMBERS myset
1) "one"
2) "three"
redis> SADD myset "four"
(integer) 1
redis> SADD myset "five"
(integer) 1
redis> SPOP myset 3
redis> SMEMBERS myset
1) "three"
详细说明
返回元素分布
请注意,当您需要保证返回元素的均匀分布时,此命令不适合。有关 SPOP 使用的算法的更多信息,请查找 Knuth 采样和 Floyd 采样算法。
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ✅ 标准 |
✅ 标准 |
返回值
RESP2
以下之一: * 无回复:如果键不存在。 * 批量字符串回复:在不带 计数 参数的情况下调用时,删除的成员。 * 数组回复:当使用 计数 参数调用时,已删除成员的列表。
RESP3
以下之一: * 空回复:如果键不存在。 * 批量字符串回复:在不带 计数 参数的情况下调用时,删除的成员。 * 数组回复:当使用 计数 参数调用时,已删除成员的列表。
资料来源:Redis 官方 SPOP 文档;中文内容参考 Redis 文档许可。