Class HashFieldExpirationConditionOptions


  • public final class HashFieldExpirationConditionOptions
    extends java.lang.Object
    Optional arguments for hash field expiration commands (HEXPIRE, HPEXPIRE, HEXPIREAT, HPEXPIREAT).

    These commands set expiration times for hash fields and support only expiration conditions:

    • NX - Only set expiration when field has no existing expiration
    • XX - Only set expiration when field has existing expiration
    • GT - Only set expiration when new expiration is greater than current
    • LT - Only set expiration when new expiration is less than current

    This class is immutable and thread-safe.

    Since:
    Valkey 9.0.0
    See Also:
    HEXPIRE Command Documentation, HPEXPIRE Command Documentation, HEXPIREAT Command Documentation, HPEXPIREAT Command Documentation
    Example:
    
     // Set expiration only if fields have no existing expiration
     HashFieldExpirationConditionOptions options = HashFieldExpirationConditionOptions.builder()
         .condition(ExpireOptions.HAS_NO_EXPIRY)
         .build();
    
     String[] fields = {"field1", "field2"};
     Long[] result = client.hexpire("myHash", 60, fields, options).get();
    
     // Set expiration only if new expiration is greater than current
     HashFieldExpirationConditionOptions gtOptions = HashFieldExpirationConditionOptions.builder()
         .condition(ExpireOptions.NEW_EXPIRY_GREATER_THAN_CURRENT)
         .build();
    
     Long[] gtResult = client.hpexpire("myHash", 60000, fields, gtOptions).get();
     
    • Method Detail

      • toArgs

        public java.lang.String[] toArgs()
        Converts the options into command arguments.
        Returns:
        Array of command arguments, empty if no condition is set
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object