If you need to rename a key in Redis, you may be wondering how to do it without overwriting any existing keys. If you use the RENAME
command, and a key already exists with your new key name, you’ll overwrite the existing key.
Fortunately, Redis also has a RENAMENX
command, which only renames the key if there’s no other key with the new name. So we can use this command whenever we need to rename a key without fear of overwriting any existing keys.
Example
Let’s create two sets and store them in a key called bands
and another called groups
:
SADD bands Soundgarden ABBA Aerosmith
SADD groups Boston Chicago Devo
Now let’s use RENAMENX
to rename the bands
key:
RENAMENX bands artists
Result:
(integer) 1
The operation succeeded because there wasn’t an existing key called artists
.
Now let’s try to rename the groups
key to artists
:
RENAMENX groups artists
Result:
(integer) 0
This time nothing was renamed. This is because there’s already a key called artists, and the RENAMENX
command won’t overwrite any existing keys.
As alluded to, if you do want to overwrite any existing keys, use the RENAME
command.