SPOP

Syntax
SPOP key [count]
Available since:
1.0.0
Time complexity:
Without the count argument O(1), otherwise O(N) where N is the value of the passed count.
ACL categories:
@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 回复

以下之一:

  • Nil reply: 如果键不存在。
  • Bulk string reply: 当调用时没有count参数时,被移除的成员。
  • Array reply: 当使用count参数调用时,返回被移除成员的列表。

RESP3 回复

以下之一:

  • Null reply: 如果键不存在。
  • Bulk string reply: 当调用时没有count参数时,被移除的成员。
  • Array reply: 当使用 count 参数调用时,返回被移除成员的列表。

历史

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