summaryrefslogtreecommitdiffstats
path: root/iredis/data/commands/spop.md
blob: 057a025ed9d5365a0679d8ed23636856bbfcf394 (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
42
43
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

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 an empty array when `key` does not exist.

@history

- `>= 3.2`: Added the `count` argument.

@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
```

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