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:
timeoutis 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)