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 value
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 nil
when key
does not exist.
*History
>= 3.2
: Added thecount
argument.
*Examples
(integer) 1redis> SADD myset "two"
(integer) 1redis> SADD myset "three"
(integer) 1redis> SPOP myset
"two"redis> SMEMBERS myset
1) "three" 2) "one"redis> SADD myset "four"
(integer) 1redis> SADD myset "five"
(integer) 1redis> SPOP myset 3
1) "three" 2) "one" 3) "five"redis> SMEMBERS myset
1) "four"
*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.