Redis中KEY的过期时间和永久有效分别如何设置?

发布于 1周前 作者 songsunli 来自 问答

Redis中KEY的过期时间和永久有效分别如何设置?

1 回复

在Redis中,设置KEY的过期时间和让其永久有效(即不过期)是非常常见的操作。Redis提供了EXPIREPERSIST命令来实现这两个功能。同时,在设置键值对时,也可以通过SETEXSET命令结合选项来直接设置过期时间。

设置KEY的过期时间

  1. 使用EXPIRE命令: 该命令用于为已存在的KEY设置过期时间,单位是秒。如果KEY不存在,则操作无效。

    EXPIRE mykey 60  # 为名为mykey的KEY设置60秒的过期时间
    
  2. 使用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的过期时间和如何让其永久有效。

回到顶部