Back to Redis

SPOP

content/commands/spop.md

latest2.2 KB
Original Source

Removes and returns one or more random members from the set value store at key.

This operation is similar to [SRANDMEMBER]({{< relref "/commands/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.

Examples

{{% redis-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 {{% /redis-cli %}}

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.

Redis Software and Redis Cloud compatibility

| Redis Software | Redis Cloud | <span style="min-width: 9em; display: table-cell">Notes</span> | |:----------------------|:-----------------|:------| | <span title="Supported">✅ Standard</span> <span title="Supported"><nobr>✅ Active-Active</nobr></span> | <span title="Supported">✅ Standard</span> <span title="Supported"><nobr>✅ Active-Active</nobr></span> | |

Return information

{{< multitabs id="spop-return-info" tab1="RESP2" tab2="RESP3" >}}

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.

-tab-sep-

One of the following:

  • Null 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.

{{< /multitabs >}}