Redis Set SPOP Command
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.
Syntax
The basic syntax of the SPOP command is as follows:
1 | SPOP key [count] |
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.
Note: the count argument is available in version 3.2.0 and later.
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.
Available Since
Redis version >= 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
Return Value
Returns the removed member(s). Returns nil if the set does not exist or is empty.
Example 1
1 | 127.0.0.1:6379> SADD myset a b c d e f g |
Example 2
Returns nil if the set does not exist:
1 | 127.0.0.1:6379> SPOP ss |
Returns nil if the set is empty:
1 | 127.0.0.1:6379> SMEMBERS myset |


