Skip to content

Ask the HotKV docs

Answers come only from these docs and can be wrong; check the linked pages before you rely on them.

BZPOPMIN

Last updated
BZPOPMIN key [key ...] timeout
Group
Sorted set
Complexity
O(log(N)) where N is the size of the sorted set
Arity
-3 (at least 3 words, counting the command name)
Flags
write, blocking, fast
Keys
first 1, last -2, step 1
HotKV Cloud
All plans
On-Premise
no license needed

BZPOPMIN is the blocking form of ZPOPMIN. It checks the keys in the order given and pops the lowest-scored member of the first one that holds a non-empty sorted set. If every sorted set is empty or missing, the connection waits until another client adds a member to one of the keys, or until timeout passes.

timeout is in seconds and can have a fractional part. 0 waits forever. Inside MULTI / EXEC and inside scripts, BZPOPMIN never waits and replies at once as if the timeout had expired.

Case RESP2 RESP3
Member popped Three-element array: the key, the member, the score (bulk string) Three-element array: key, member, score (double)
Timeout expired Nil array Null

Errors:

  • ERR timeout is not a float or out of range, ERR timeout is negative, or ERR timeout is out of range for a bad timeout.
  • WRONGTYPE if a key reached before the first non-empty sorted set holds a value that is not a sorted set.
127.0.0.1:6379> ZADD tasks 2 "normal" 1 "urgent"
(integer) 2
127.0.0.1:6379> BZPOPMIN empty tasks 5
1) "tasks"
2) "urgent"
3) "1"
127.0.0.1:6379> BZPOPMIN empty 0.5
(nil)
(0.50s)

Same as Redis 7.4 and Valkey 8.

BZPOPMAX, ZPOPMIN, BZMPOP, BLPOP