redis键重命名

2021-01-25  本文已影响0人  杂记_

命令: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"
上一篇 下一篇

猜你喜欢

热点阅读