命令:RENAME key newkey
键重命名。
127.0.0.1:6379> set test1 value1
OK
127.0.0.1:6379> rename test1 test2
OK
如果键不存在会报错。重命名会执行键的删除操作,因此在键存储的value比较大时,要谨慎使用。
在集群模式下,key和newkey必须位于同一hash slot中,因此只有具有相同hash标记的密钥才能在集群中可靠地重命名。
在小于等于3.2.0版本中,如果key和newkey相同,则会报错。
如果在rename之前,键已经存在,那么它的值也将被覆盖
127.0.0.1:6379> set test1 value1
OK
127.0.0.1:6379> set test2 value2
OK
127.0.0.1:6379> get test1
"value1"
127.0.0.1:6379> get test2
"value2"
127.0.0.1:6379> rename test1 test2
OK
127.0.0.1:6379> get test1
(nil)
127.0.0.1:6379> get test2
"value1"
为避免重命名覆盖已有键的问题,可应用命令renamenx,确保只有newkey不存在时候才能覆盖。
127.0.0.1:6379> set test1 value1
OK
127.0.0.1:6379> set test2 value2
OK
127.0.0.1:6379> renamenx test1 test2
(integer) 0
127.0.0.1:6379> get test1
"value1"
127.0.0.1:6379> get test2
"value2"
127.0.0.1:6379> renamenx test1 test3
(integer) 1
127.0.0.1:6379> get test1
(nil)
127.0.0.1:6379> get test3
"value1"
网友评论