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 TLSREDIS_URL from the Upstash console. REST examples use UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN.
Redis CLI
Redis CLI
@upstash/redis
@upstash/redis
This command is not supported yet in
@upstash/redis.upstash_redis
upstash_redis
ioredis
ioredis
node-redis
node-redis
redis-py
redis-py
go-redis
go-redis
jedis
jedis
redis-rs
redis-rs