SPOP

语法
SPOP key [count]
自版本起
1.0.0
时间复杂度
如果没有 count 参数,则为 O(1),否则为 O(N),其中 N 是传递的 count 的值。
ACL 类别
@write, @set, @fast,

从存储在 key 的集合值存储中移除并返回一个或多个随机成员。

此操作类似于 SRANDMEMBER,它从集合中返回一个或多个随机元素,但不将其移除。

默认情况下,该命令从集合中弹出单个成员。当提供可选的 count 参数时,回复将包含最多 count 个成员,具体取决于集合的基数。

示例

SADD myset "one" SADD myset "two" SADD myset "three" SPOP myset SMEMBERS myset SADD myset "four" SADD myset "five" SPOP myset 3 SMEMBERS myset

返回元素的分布

请注意,当您需要保证返回元素的均匀分布时,此命令不适合。有关用于 SPOP 的算法的更多信息,请查找 Knuth 采样和 Floyd 采样算法。

RESP2 回复

以下之一

  • 空回复:如果键不存在。
  • 批量字符串回复:在不带 count 参数的情况下调用时,移除的成员。
  • 数组回复:在带有 count 参数的情况下调用时,移除成员的列表。

RESP3 回复

以下之一

  • 空回复:如果键不存在。
  • 批量字符串回复:在不带 count 参数的情况下调用时,移除的成员。
  • 数组回复:在带有 count 参数的情况下调用时,移除成员的列表。

历史

  • 从 Redis 版本 3.2.0 开始:添加了 count 参数。
RATE THIS PAGE
Back to top ↑