*Redis HPTTL 命令

返回 Hash 中一个或多个 field 的剩余生存时间(毫秒)。Redis 7.4+ 引入。


*语法

HPTTL key field [field ...]

*参数说明

参数 类型 必填 说明
key String Hash 键名
field String 字段名,可一次查询多个

*返回值

条件 返回值
field 有 TTL 剩余毫秒数数组
field 存在但无 TTL -1
field 不存在 -2
key 不存在 -2

*时间复杂度

O(N),N 为 field 数量。


*示例

> HSET user:1001 name "Alice" email "alice@example.com"
> HPXPIRE user:1001 60000 name
1) (integer) 1

> HPTTL user:1001 name email
1) (integer) 59987
2) (integer) -1    # email 没有 TTL

# field 不存在
> HPTTL user:1001 phone
1) (integer) -2

*常见错误

  1. 对非 Hash 使用:返回 WRONGTYPE。

*最佳实践

  1. 精确 TTL 监控:需要毫秒级精度监控 field 过期时间时使用 HPTTL。

*FAQ

Q: HPTTL 和 HTTL 有什么区别? A: HPTTL 返回毫秒;HTTL 返回秒。两者功能相同,精度不同。

Q: HPTTL 返回值 -1 和 -2 有什么区别? A: -1 表示 field 存在但无 TTL(永不过期);-2 表示 field 不存在或 key 不存在。