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.

BRPOP

Last updated
BRPOP key [key ...] timeout
Group
List
Complexity
O(N) where N is the number of keys given
Arity
-3 (at least 3 words, counting the command name)
Flags
write, blocking
Keys
first 1, last -2, step 1
HotKV Cloud
All plans
On-Premise
no license needed

BRPOP is the blocking form of RPOP. It works exactly like BLPOP, but pops from the tail of the list instead of the head. Keys are checked in the order given; if every list is empty or missing, the connection waits until one of them receives an element or timeout passes.

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

Case RESP2 RESP3
Element popped Two-element array: the key, then the element Same
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 list holds a value that is not a list.
127.0.0.1:6379> RPUSH jobs j1 j2
(integer) 2
127.0.0.1:6379> BRPOP jobs 0
1) "jobs"
2) "j2"
127.0.0.1:6379> BRPOP nothing 0.1
(nil)
(0.10s)

Same as Redis 7.4 and Valkey 8.

BLPOP, RPOP, BLMPOP, BLMOVE, LPUSH