Upstash Documentation

COPY

Copy a key to another key.
2 min read

Use COPY to copy the value stored at one key to another key.

The destination gets an independent deep copy of the value, so later changes to either key do not affect the other, and the source key's remaining time to live is copied along with it. Any type can be copied.

By default the command does nothing and returns 0 when the destination key already exists; REPLACE overwrites it instead. DB selects the destination database index, which on Upstash is always 0.

Syntax#

Arguments#

ArgumentRequiredRepeatableDescription
<source>YesNoRedis key used as source.
<destination>YesNoRedis key used as destination.
DB <destination-db>NoNoIndex of the database to copy the key into.
REPLACENoNoAllow replacement of an existing destination.

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.

ProtocolReply
RESP2Integer: 1 if the key was copied, 0 otherwise
RESP3Integer: 1 if the key was copied, 0 otherwise
Note

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.

Redis CLI
@upstash/redis
upstash_redis
ioredis
node-redis
redis-py
go-redis
jedis
redis-rs