*Redis PEXPIRETIME 命令

PEXPIRETIME 返回指定 key 的绝对过期时间(Unix 时间戳,毫秒)。


*语法

PEXPIRETIME key

*参数说明

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

*返回值

  • Integer:key 的绝对过期时间(Unix 时间戳,毫秒)
  • -1:key 存在但没有设置过期时间
  • -2:key 不存在

*时间复杂度

O(1)

*

*示例

*查看有过期时间的 key

> SET mykey "hello"
OK
> PEXPIREAT mykey 1893456000000
(integer) 1
> PEXPIRETIME mykey
(integer) 1893456000000

*无过期时间的 key

> SET persistkey "value"
OK
> PEXPIRETIME persistkey
(integer) -1

*key 不存在的场景

> PEXPIRETIME notexist
(integer) -2

*常见错误

错误 原因 解决
ERR wrong number of arguments 未提供 key 参数 补充 key 参数

*最佳实践

  • 需要获取 key 的精确过期时间戳时,使用 PEXPIRETIME(毫秒精度)优于 EXPIRETIME(秒精度)
  • 配合 PEXPIREAT / PEXPIRE 使用,实现过期时间的完整生命周期管理
  • 返回 -1 表示 key 永不过期,可用于检查 key 是否应被持久化存储
  • 返回 -2 可用于区分 key 不存在和 key 无过期时间两种情况

*FAQ

Q1: PEXPIRETIME 和 PTTL 有什么区别? A: PEXPIRETIME 返回绝对过期时间戳(毫秒),PTTL 返回相对剩余时间(毫秒)。两者可通过 PEXPIRETIME = 当前时间 + PTTL 换算。

Q2: PEXPIRETIME 和 EXPIRETIME 有什么区别? A: PEXPIRETIME 返回毫秒级 Unix 时间戳,EXPIRETIME 返回秒级 Unix 时间戳。PEXPIRETIME 精度更高。

Q3: 返回 -1 和 -2 分别代表什么? A: -1 表示 key 存在但没有设置过期时间(永不过期);-2 表示 key 不存在。两者含义不同,处理逻辑时需区分。