HPERSIST

去掉每个指定字段的过期时间

语法

HPERSIST key FIELDS numfields field [field ...]

引入版本:7.4.0

复杂度摘要:O(N)

删除哈希键字段上的现有过期时间,将字段从 不稳定(设置了过期时间的字段)转换为 坚持不懈(由于没有关联 TTL(生存时间)而永远不会过期的字段)。

必需参数

key

保存哈希值的键的名称。

FIELDS numfields field [field ...]

要从中删除过期时间的哈希字段。 numfields 是字段的数量,后面跟着这些字段的名称。

示例

redis> HSET mykey field1 "hello" field2 "world"
(integer) 2
redis> HEXPIRE mykey 300 FIELDS 2 field1 field2
1) (integer) 1
2) (integer) 1
redis> HTTL mykey FIELDS 2 field1 field2
1) (integer) 283
2) (integer) 283
redis> HPERSIST mykey FIELDS 1 field2
1) (integer) 1
redis> HTTL mykey FIELDS 2 field1 field2
1) (integer) 268
2) (integer) -1

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
✅ 标准
✅ 主动-主动
✅ 标准
✅ 主动-主动

返回值

RESP2

  • 数组回复。对于每个字段:
    • 整数回复:如果提供的哈希键中不存在该字段,或者提供的键不存在,则为 -2。
    • 整数回复:如果该字段存在但没有关联的到期设置,则为 -1。
    • 整数回复:1 过期被移除。

RESP3

  • 数组回复。对于每个字段:
    • 整数回复:如果提供的哈希键中不存在该字段,或者提供的键不存在,则为 -2。
    • 整数回复:如果该字段存在但没有关联的到期设置,则为 -1。
    • 整数回复:1 过期被移除。

资料来源:Redis 官方 HPERSIST 文档;中文内容参考 Redis 文档许可。