SPOP key [count]
Time complexity: O(1)
Removes and returns one or more random elements from the set value store at .
This operation is similar to , that returns one or more random elements from a set but does not remove it.
The argument is available since version 3.2.
Bulk string reply: the removed element, or when does not exist.
redis> SADD myset "two"
- (integer) 1
redis> SADD myset "three"
- (integer) 1
redis> SPOP myset
redis> SMEMBERS myset
- 1) "three"
- 2) "two"
redis> SADD myset "four"
redis> SPOP myset 3
- 1) "five"
- 2) "two"
- 3) "four"
redis> SMEMBERS myset
redis>
- 1) "three"
If count is bigger than the number of elements inside the Set, the command will only return the whole set without additional 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.
Redis 3.2 introduced an optional argument that can be passed to in order to retrieve multiple elements in a single call.