Skip to main content

SPOP

Syntax​

SPOP key [count]

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

Removes and returns one or more random members from the set value store at key.

This operation is similar to SRANDMEMBER, that returns one or more random elements from a set but does not remove it.

By default, the command pops a single member from the set. When provided with the optional count argument, the reply will consist of up to count members, depending on the set's cardinality.

Return​

When called without the count argument:

Bulk string reply: the removed member, or nil when key does not exist.

When called with the count argument:

Array reply: the removed members, or an empty array when key does not exist.

Examples​

dragonfly> SADD myset "one"
(integer) 1
dragonfly> SADD myset "two"
(integer) 1
dragonfly> SADD myset "three"
(integer) 1
dragonfly> SPOP myset
"one"
dragonfly> SMEMBERS myset
1) "three"
2) "two"
dragonfly> SADD myset "four"
(integer) 1
dragonfly> SADD myset "five"
(integer) 1
dragonfly> SPOP myset 3
1) "three"
2) "two"
3) "four"
dragonfly> SMEMBERS myset
1) "five"

Distribution of returned elements​

Note that this command is not suitable when you need a guaranteed uniform distribution of the returned elements. For more information about the algorithms used for SPOP, look up both the Knuth sampling and Floyd sampling algorithms.