Redis キーの名前を変更する

Redis キーの名前を変更する

Redisで、キーの名前を変更する手順を記述してます。「rename」に元のキーと変更したいキー名を指定刷ることで可能です。名前を変更すると元のキー名の値は「nil」となります。

環境

  • OS CentOS Stream release 9
  • Redis 7.0.5

手順

キーの名前を変更するには、「rename」を使用します。

rename キー名 変更するキー名

実際に、キーを作成して「k1」という名前を「chk」に変更してみます。

127.0.0.1:6379> set k1 "aaa"
OK

127.0.0.1:6379> rename k1 chk
OK

127.0.0.1:6379> get chk
"aaa"

127.0.0.1:6379> get k1
(nil)

キーの名前が変更されて、元の名前が「nil」になっていることが確認できます。

renameするキーがなければエラーとなります。

127.0.0.1:6379> rename k1 k2
(error) ERR no such key

既にキーが存在する場合

既にキーが存在する場合は、上書きされます。

127.0.0.1:6379> set k1 "aaa"
OK

127.0.0.1:6379> set k2 "bbb"
OK

127.0.0.1:6379> rename k1 k2
OK

127.0.0.1:6379> get k2
"aaa"

127.0.0.1:6379> get k1
(nil)

renamenx

「renamenx」を使用すると、既にキーが存在する場合は上書きされません。

127.0.0.1:6379> set k1 "aaa"
OK

127.0.0.1:6379> set k2 "bbb"
OK

127.0.0.1:6379> renamenx k1 k2
(integer) 0

127.0.0.1:6379> get k2
"bbb"

キーが存在しなければ「rename」と同じ動作となります。

127.0.0.1:6379> del k2
(integer) 1

127.0.0.1:6379> renamenx k1 k2
(integer) 1

127.0.0.1:6379> get k2
"aaa"

127.0.0.1:6379> get k1
(nil)