*Redis HPEXPIRETIME 命令
返回 Hash 中一个或多个 field 的绝对过期时间(Unix 时间戳,毫秒)。Redis 7.4+ 引入。
*语法
HPEXPIRETIME key field [field ...]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | Hash 键名 |
| field | String | 是 | 字段名,可一次查询多个 |
*返回值
| 条件 | 返回值 |
|---|---|
| field 有 TTL | 过期 Unix 时间戳(毫秒)数组 |
| 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
> HPEXPIRETIME user:1001 name email
1) (integer) 1717000060000
2) (integer) -1 # email 没有 TTL
*常见错误
- 对非 Hash 使用:返回 WRONGTYPE。
*最佳实践
- 毫秒级绝对过期时间:获取精确到毫秒的过期时间戳。
*FAQ
Q: HPEXPIRETIME 和 HEXPIRETIME 有什么区别? A: HPEXPIRETIME 返回毫秒时间戳;HEXPIRETIME 返回秒时间戳。两者功能相同,精度不同。