1 回复
在Redis中,设置KEY的过期时间和让其永久有效(即不过期)是非常常见的操作。Redis提供了EXPIRE
和PERSIST
命令来实现这两个功能。同时,在设置键值对时,也可以通过SETEX
或SET
命令结合选项来直接设置过期时间。
设置KEY的过期时间
-
使用
EXPIRE
命令: 该命令用于为已存在的KEY设置过期时间,单位是秒。如果KEY不存在,则操作无效。EXPIRE mykey 60 # 为名为mykey的KEY设置60秒的过期时间
-
使用
SETEX
命令: 这是一个原子操作,它同时设置了KEY的值和过期时间。如果KEY已存在,则先删除旧值再设置新值。SETEX mykey 60 "Hello, Redis!" # 设置mykey的值为"Hello, Redis!",并设置其过期时间为60秒
设置KEY永久有效
-
使用
PERSIST
命令: 该命令用于移除KEY的过期时间,让KEY变成永久有效。如果KEY不存在或者KEY没有设置过期时间,则操作无效。PERSIST mykey # 移除mykey的过期时间,使其永久有效
-
通过
SET
命令不设置过期时间: 简单地使用SET
命令而不结合过期时间选项,也可以创建一个永久有效的KEY。SET mykey "This key never expires" # 创建一个名为mykey的永久KEY
示例
假设我们有一个Redis实例,现在想要设置一个名为user:123
的KEY,其值为"John Doe"
,过期时间为30秒,然后移除其过期时间:
# 设置KEY及其过期时间
SETEX user:123 30 "John Doe"
# 查看KEY
GET user:123 # 输出: "John Doe"
# 等待一段时间后或检查其TTL
TTL user:123 # 输出剩余时间,比如 25
# 移除KEY的过期时间
PERSIST user:123
# 再次检查TTL
TTL user:123 # 输出: -1,表示KEY没有设置过期时间
通过以上示例,你可以看到如何在Redis中设置KEY的过期时间和如何让其永久有效。