SPOP
语法
SPOP key [count]
- 可用版本
- Redis Open Source 1.0.0
- 时间复杂度
- 没有 count 参数时为 O(1),否则为 O(N),其中 N 是传入的 count 值。
- ACL 类别
-
@write
,@set
,@fast
,
从存储在 key
的集合值中移除并返回一个或多个随机成员。
此操作类似于 SRANDMEMBER
,后者从集合中返回一个或多个随机元素,但不将其移除。
默认情况下,此命令从集合中弹出一个成员。当提供可选的 count
参数时,返回结果将包含最多 count
个成员,具体取决于集合的基数。
示例
返回元素的分布
请注意,如果您需要返回元素保证均匀分布,则此命令不适用。有关 SPOP
使用的算法的更多信息,请查找 Knuth 采样算法和 Floyd 采样算法。
RESP2 回复
以下之一
- Nil 回复:如果键不存在。
- Bulk string 回复:在不带 count 参数调用时,返回移除的成员。
- Array 回复:在带 count 参数调用时,返回移除的成员列表。
RESP3 回复
以下之一
- Null 回复:如果键不存在。
- Bulk string 回复:在不带 count 参数调用时,返回移除的成员。
- Array 回复:在带 count 参数调用时,返回移除的成员列表。
历史
- 从 Redis 3.2.0 版本开始:添加了
count
参数。