--- acl_categories: - '@write' - '@hash' - '@fast' arguments: - display_text: key key_spec_index: 0 name: key type: key - arguments: - display_text: numfields name: numfields type: integer - display_text: field multiple: true name: field type: string name: fields token: FIELDS type: block arity: -5 categories: - docs - develop - stack - oss - rs - rc - oss - kubernetes - clients command_flags: - write - fast complexity: O(N) where N is the number of specified fields description: Removes the expiration time for each specified field group: hash hidden: false key_specs: - RW: true begin_search: spec: index: 1 type: index find_keys: spec: keystep: 1 lastkey: 0 limit: 0 type: range update: true linkTitle: HPERSIST railroad_diagram: /images/railroad/hpersist.svg since: 7.4.0 summary: Removes the expiration time for each specified field syntax_fmt: "HPERSIST key FIELDS\_numfields field [field ...]" title: HPERSIST --- Remove the existing expiration on a hash key's field(s), turning the field(s) from _volatile_ (a field with expiration set) to _persistent_ (a field that will never expire as no TTL (time to live) is associated). ## Examples ``` 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 and Redis Cloud compatibility | Redis
Software | Redis
Cloud | Notes | |:----------------------|:-----------------|:------| | ✅ Standard
✅ Active-Active | ✅ Standard
✅ Active-Active | | ## Return information {{< multitabs id="hpersist-return-info" tab1="RESP2" tab2="RESP3" >}} * [Array reply](../../develop/reference/protocol-spec#arrays). For each field: - [Integer reply](../../develop/reference/protocol-spec#integers): `-2` if no such field exists in the provided hash key, or the provided key does not exist. - [Integer reply](../../develop/reference/protocol-spec#integers): `-1` if the field exists but has no associated expiration set. - [Integer reply](../../develop/reference/protocol-spec#integers): `1` the expiration was removed. -tab-sep- * [Array reply](../../develop/reference/protocol-spec#arrays). For each field: - [Integer reply](../../develop/reference/protocol-spec#integers): `-2` if no such field exists in the provided hash key, or the provided key does not exist. - [Integer reply](../../develop/reference/protocol-spec#integers): `-1` if the field exists but has no associated expiration set. - [Integer reply](../../develop/reference/protocol-spec#integers): `1` the expiration was removed. {{< /multitabs >}}