RENAME key newkey

Redis RENAME 命令用于修改 key 的名字为 newkey 。若key 不存在返回错误。

在集群模式下,keynewkey 需要在同一个 hash slotkeynewkey有相同的 hash tag 才能重命名。

如果 newkey 存在则会被覆盖,此种情况隐式执行了 DEL 操作,所以如果要删除的key的值很大会有一定的延时,即使RENAME 本身是常量时间复杂度的操作。

在集群模式下,keynewkey 需要在同一个 hash slotkeynewkey有相同的 hash tag 才能重命名。

*历史

  • <= 3.2.0: 源 key 和目的 key 相同返回错误。

*返回值

字符串

*例子

# key 存在且 newkey 不存在 redis>  SET mykey "Hello"
"OK"
redis>  RENAME mykey myotherkey
"OK"
redis>  GET myotherkey
"Hello"
# 当 key 不存在时,返回错误 redis>  RENAME fake_key never_exists
ERR ERR no such key
# newkey 已存在时, RENAME 会覆盖旧 newkey redis>  SET pc "lenovo"
"OK"
redis>  SET personal_computer "dell"
"OK"
redis>  RENAME pc personal_computer
"OK"
redis>  GET pc
(nil)
# 原来的值 dell 被覆盖了 redis>  GET personal_computer
"lenovo"
redis>