Skip to main content
Prefer LMOVE with RIGHT and LEFT in new code: LMOVE <source> <destination> RIGHT LEFT.
Use RPOPLPUSH to atomically move an element from the tail of one list to the head of another, returning the element. If the source is empty nothing happens and the reply is null. Source and destination may be the same key, which rotates the list: the tail element becomes the new head, so repeated calls cycle through a list of items forever, a handy pattern for round-robin scheduling. LMOVE does the same thing but lets you choose both ends, and BRPOPLPUSH is the blocking form.

Syntax

Arguments

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.
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.
This command is not supported yet in @upstash/redis.