Returns one or more random members from a set after removing them. Deletes the set if the last member was popped.
SPOP key [count]
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.
One of the following:
Nil reply: if the key does not exist.
Bulk string reply: when called without the count argument, the removed member.
Array reply: when called with the count argument, a list of the removed members.
One of the following:
Null reply: if the key does not exist.
Bulk string reply: when called without the count argument, the removed member.
Set reply: when called with the count argument, the set of removed members.
Without the count argument O(1), otherwise O(N) where N is the value of the passed count.
@fast @set @write
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"
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.
count argument.SADD, SCARD, SDIFF, SDIFFSTORE, SINTER, SINTERCARD, SINTERSTORE, SISMEMBER, SMEMBERS, SMISMEMBER, SMOVE, SRANDMEMBER, SREM, SSCAN, SUNION, SUNIONSTORE.