Redis Renamenx 命令用于在新的 key 不存在时修改 key 的名称 。

语法
redis Renamenx 命令基本语法如下:

redis 127.0.0.1:6379> RENAMENX OLD_KEY_NAME NEW_KEY_NAME
可用版本
>= 1.0.0

返回值
修改成功时,返回 1 。 如果 NEW_KEY_NAME 已经存在,返回 0 。

实例
# newkey 不存在,改名成功

redis> SET player “MPlyaer”
OK

redis> EXISTS best_player
(integer) 0

redis> RENAMENX player best_player
(integer) 1

# newkey存在时,失败

redis> SET animal “bear”
OK

redis> SET favorite_animal “butterfly”
OK

redis> RENAMENX animal favorite_animal
(integer) 0

redis> get animal
“bear”

redis> get favorite_animal
“butterfly”

Redis key(键)

redis Rename 命令基本语法如下:

redis 127.0.0.1:6379> RENAME OLD_KEY_NAME NEW_KEY_NAME
可用版本
>= 1.0.0

返回值
改名成功时提示 OK ,失败时候返回一个错误。

当 OLD_KEY_NAME 和 NEW_KEY_NAME 相同,或者 OLD_KEY_NAME 不存在时,返回一个错误。 当 NEW_KEY_NAME 已经存在时, RENAME 命令将覆盖旧值。

实例
# key 存在且 newkey 不存在

redis> SET message “hello world”
OK

redis> RENAME message greeting
OK

redis> EXISTS message # message 不复存在
(integer) 0

redis> EXISTS greeting # greeting 取而代之
(integer) 1

# 当 key 不存在时,返回错误

redis> RENAME fake_key never_exists
(error) 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)

redis:1> GET personal_computer # 原来的值 dell 被覆盖了
“lenovo”

Redis key(键)

Redis RANDOMKEY 命令从当前数据库中随机返回一个 key 。

语法
redis RANDOMKEY 命令基本语法如下:

redis 127.0.0.1:6379> RANDOMKEY
可用版本
>= 1.0.0

返回值
当数据库不为空时,返回一个 key 。 当数据库为空时,返回 nil 。

实例
# 数据库不为空

redis> MSET fruit “apple” drink “beer” food “cookies” # 设置多个 key
OK

redis> RANDOMKEY
“fruit”

redis> RANDOMKEY
“food”

redis> KEYS * # 查看数据库内所有key,证明 RANDOMKEY 并不删除 key
1) “food”
2) “drink”
3) “fruit”

# 数据库为空

redis> FLUSHDB # 删除当前数据库所有 key
OK

redis> RANDOMKEY
(nil)
Redis key(键)

Redis TTL 命令以秒为单位返回 key 的剩余过期时间。

语法
redis TTL 命令基本语法如下:

redis 127.0.0.1:6379> TTL KEY_NAME
可用版本
>= 1.0.0

返回值
当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以毫秒为单位,返回 key 的剩余生存时间。

注意:在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。

实例
# 不存在的 key

redis> FLUSHDB
OK

redis> TTL key
(integer) -2

# key 存在,但没有设置剩余生存时间

redis> SET key value
OK

redis> TTL key
(integer) -1

# 有剩余生存时间的 key

redis> EXPIRE key 10086
(integer) 1

redis> TTL key
(integer) 10084

Redis key(键)

Redis Pttl 命令以毫秒为单位返回 key 的剩余过期时间。

语法
redis Pttl 命令基本语法如下:

redis 127.0.0.1:6379> PTTL KEY_NAME
可用版本
>= 2.6.0

返回值
当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以毫秒为单位,返回 key 的剩余生存时间。

注意:在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。

实例
# 不存在的 key

redis> FLUSHDB
OK

redis> PTTL key
(integer) -2

# key 存在,但没有设置剩余生存时间

redis> SET key value
OK

redis> PTTL key
(integer) -1

# 有剩余生存时间的 key

redis> PEXPIRE key 10086
(integer) 1

redis> PTTL key
(integer) 6179

Redis key(键)