*Redis PERSIST 命令

移除 key 的过期时间,使 key 永不过期。


*语法

PERSIST key

*参数说明

参数 类型 必填 说明
key String 键名

*返回值

条件 返回值
成功移除 TTL 1
key 不存在或无 TTL 0

*时间复杂度

O(1)

*

*示例

> SET mykey "value" EX 60
OK
> TTL mykey
(integer) 58

> PERSIST mykey
(integer) 1

> TTL mykey
(integer) -1    # 永不过期

# key 不存在
> PERSIST nokey
(integer) 0

*常见错误

  1. key 不存在返回 0:不报错,需判断返回值。

*最佳实践

  1. 永久缓存:初始化时带 TTL,确认数据有效后 PERSIST 设为永久。
  2. Session 续期:登录验证成功后 PERSIST session key,避免 TTL 到期。

*FAQ

Q: PERSIST 和 EXPIRE 是相反操作吗? A: 是。PERSIST 移除 TTLEXPIRE 设置 TTL

Q: PERSIST 后 key 会被删除吗? A: 不会。PERSIST 后 key 永不过期,除非手动 DEL