Use ZPOPMIN to remove and return the members with the lowest scores in a sorted set.
Without a count one member is returned with its score, and with a count up to that many are removed, ordered from the lowest score up. The key is deleted once the last member is popped.
With a timestamp or a priority number as the score, this is how a sorted set becomes a scheduler or a priority queue: the next item due is always the minimum, and popping it atomically means only one worker can pick it up. BZPOPMIN is the blocking form.
Syntax#
Arguments#
| Argument | Required | Repeatable | Description |
|---|---|---|---|
<key> | Yes | No | Redis key targeted by the command. |
<count> | No | No | Number of members to pop. |
Important points#
- RESP2 represents floating-point reply values as bulk strings; RESP3 may use native double replies. Client libraries commonly decode either form to a language number.
Response#
The reply reports the result of the operation. Error replies have the same shape in RESP2 and RESP3 and are surfaced as exceptions by the SDKs below.
| Protocol | Reply |
|---|---|
| RESP2 | Flat array of alternating members and bulk-string scores |
| RESP3 | Flat array of alternating members and double scores |
Client libraries often decode bulk strings, maps, sets, and numeric strings into language-native values. The table describes the Redis wire reply.
Examples#
TCP examples use the TLS REDIS_URL from the Upstash console. REST examples use UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN.