Upstash Documentation

RENAMENX

Rename a key if new key doesn't exist.
2 min read

Use RENAMENX to rename a key only when the new name is not already in use.

The reply is 1 when the rename happened and 0 when the destination already existed and nothing was changed; renaming a key that does not exist returns an error. Because the check and the rename are one atomic step, the command can serve as a way to claim a name: only one of several clients trying to rename onto the same destination succeeds.

Syntax#

Arguments#

ArgumentRequiredRepeatableDescription
<key>YesNoRedis key targeted by the command.
<newkey>YesNoRedis key used as newkey.

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 renamed, 0 if the destination already exists
RESP3Integer: 1 if the key was renamed, 0 if the destination already exists
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