summaryrefslogtreecommitdiffstats
path: root/iredis/data/commands/spop.md
blob: 76b1c8916582728e5500a106000e679a9ead4b19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Removes and returns one or more random elements 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.

The `count` argument is available since version 3.2.

@return

@bulk-string-reply: the removed element, or `nil` when `key` does not exist.

@examples

```cli
SADD myset "one"
SADD myset "two"
SADD myset "three"
SPOP myset
SMEMBERS myset
SADD myset "four"
SADD myset "five"
SPOP myset 3
SMEMBERS myset
```

## Specification of the behavior when count is passed

If count is bigger than the number of elements inside the Set, the command will
only return the whole set without additional elements.

## 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.

## Count argument extension

Redis 3.2 introduced an optional `count` argument that can be passed to `SPOP`
in order to retrieve multiple elements in a single call.