- 用法
-
SPOP key [ count ]
- 复杂度
- 不带 count 参数时为 O(1),否则为 O(N),其中 N 为传入的 count 值。
- 自
- 1.0.0
- ACL 类别
- @set, @write, @fast
-
Nil 回复:如果键不存在。
-
Bulk string 回复:当不带 count 参数调用时,返回被移除的成员。
-
Array 回复:当带 count 参数调用时,返回被移除成员的列表。
-
Null 回复:如果键不存在。
-
Bulk string 回复:当不带 count 参数调用时,返回被移除的成员。
-
Set 回复:当带 count 参数调用时,返回被移除成员的集合。
从存储在 key
处的集合中移除并返回一个或多个随机成员。
此操作类似于 SRANDMEMBER
,后者从集合中返回一个或多个随机元素,但不会将其移除。
默认情况下,此命令从集合中弹出一个成员。当提供了可选的 count
参数时,回复将包含最多 count
个成员,具体取决于集合的基数。
示例
127.0.0.1:6379> SADD myset "one"
(integer) 1
127.0.0.1:6379> SADD myset "two"
(integer) 1
127.0.0.1:6379> SADD myset "three"
(integer) 1
127.0.0.1:6379> SPOP myset
"three"
127.0.0.1:6379> SMEMBERS myset
1) "one"
2) "two"
127.0.0.1:6379> SADD myset "four"
(integer) 1
127.0.0.1:6379> SADD myset "five"
(integer) 1
127.0.0.1:6379> SPOP myset 3
1) "one"
2) "four"
3) "five"
127.0.0.1:6379> SMEMBERS myset
1) "two"
返回元素的分布
请注意,当您需要确保返回元素具有均匀分布时,此命令并不适用。有关 SPOP
所用算法的更多信息,请查阅 Knuth 抽样算法和 Floyd 抽样算法。
RESP2 回复
以下之一
RESP3 回复
以下之一
历史
版本 | 变更 |
---|---|
3.2.0 | 添加了 |