brpoplpush.3valkey - Man Page
Pops an element from a list, pushes it to another list and returns it. Block until an element is available otherwise. Deletes the list if the last element was popped.
Synopsis
BRPOPLPUSH
source destination timeout
Description
BRPOPLPUSH
is the blocking variant of RPOPLPUSH
. When source
contains elements, this command behaves exactly like RPOPLPUSH
. When used inside a MULTI
/EXEC
block, this command behaves exactly like RPOPLPUSH
. When source
is empty, Valkey will block the connection until another client pushes to it or until timeout
is reached. A timeout
of zero can be used to block indefinitely.
See RPOPLPUSH
for more information.
Pattern: Reliable queue
Please see the pattern description in the RPOPLPUSH
documentation.
Pattern: Circular list
Please see the pattern description in the RPOPLPUSH
documentation.
Reply
Resp2
One of the following:
- valkey-protocol(7) Bulk string reply: the element being popped from source and pushed to destination.
- valkey-protocol(7) Nil reply: the timeout is reached.
Resp3
One of the following:
- valkey-protocol(7) Bulk string reply: the element being popped from source and pushed to destination.
- valkey-protocol(7) Null reply: the timeout is reached.
Complexity
O(1)
Acl Categories
@blocking @list @slow @write
History
- Available since: 2.2.0
- Changed in 6.0.0:
timeout
is interpreted as a double instead of an integer.
Notes
This command is deprecated (since 6.2.0) and replaced by BLMOVE
with the RIGHT
and LEFT
arguments.
See Also
blmove(3valkey), blmpop(3valkey), blpop(3valkey), brpop(3valkey), lindex(3valkey), linsert(3valkey), llen(3valkey), lmove(3valkey), lmpop(3valkey), lpop(3valkey), lpos(3valkey), lpush(3valkey), lpushx(3valkey), lrange(3valkey), lrem(3valkey), lset(3valkey), ltrim(3valkey), rpop(3valkey), rpush(3valkey), rpushx(3valkey)