Interface RedisHashCommands

All Known Subinterfaces:
DefaultedRedisClusterConnection, DefaultedRedisConnection, RedisClusterConnection, RedisCommands, RedisConnection, RedisConnectionUtils.RedisConnectionProxy, StringRedisConnection
All Known Implementing Classes:
AbstractRedisConnection, DefaultStringRedisConnection, JedisClusterConnection, JedisConnection, LettuceClusterConnection, LettuceConnection

public interface RedisHashCommands
Hash-specific commands supported by Redis.
Author:
Costin Leau, Christoph Strobl, Mark Paluch, Tihomir Mateev
  • Method Summary

    Modifier and Type
    Method
    Description
    default List<Long>
    applyHashFieldExpiration(byte[] key, Expiration expiration, byte[]... fields)
    Apply a given Expiration to the given fields.
    default List<Long>
    applyHashFieldExpiration(byte[] key, Expiration expiration, ExpirationOptions options, byte[]... fields)
     
    hDel(byte[] key, byte[]... fields)
    Delete given hash fields.
    hExists(byte[] key, byte[] field)
    Determine if given hash field exists.
    default List<Long>
    hExpire(byte[] key, long seconds, byte[]... fields)
    Set time to live for given fields in seconds.
    hExpire(byte[] key, long seconds, ExpirationOptions.Condition condition, byte[]... fields)
    Set time to live for given fields in seconds.
    default List<Long>
    hExpire(byte[] key, Duration ttl, byte[]... fields)
    Set time to live for given fields.
    default List<Long>
    hExpireAt(byte[] key, long unixTime, byte[]... fields)
    Set the expiration for given field as a UNIX timestamp.
    hExpireAt(byte[] key, long unixTime, ExpirationOptions.Condition condition, byte[]... fields)
    Set the expiration for given field as a UNIX timestamp.
    byte[]
    hGet(byte[] key, byte[] field)
    Get value for given field from hash at key.
    Map<byte[],byte[]>
    hGetAll(byte[] key)
    Get entire hash stored at key.
    hIncrBy(byte[] key, byte[] field, double delta)
    Increment value of a hash field by the given delta.
    hIncrBy(byte[] key, byte[] field, long delta)
    Increment value of a hash field by the given delta.
    Set<byte[]>
    hKeys(byte[] key)
    Get key set (fields) of hash at key.
    hLen(byte[] key)
    Get size of hash at key.
    List<byte[]>
    hMGet(byte[] key, byte[]... fields)
    Get values for given fields from hash at key.
    void
    hMSet(byte[] key, Map<byte[],byte[]> hashes)
    Set multiple hash fields to multiple values using data provided in hashes
    hPersist(byte[] key, byte[]... fields)
    Remove the expiration from given field.
    default List<Long>
    hpExpire(byte[] key, long millis, byte[]... fields)
    Set time to live for given fields in milliseconds.
    hpExpire(byte[] key, long millis, ExpirationOptions.Condition condition, byte[]... fields)
    Set time to live for given fields in milliseconds.
    default List<Long>
    hpExpire(byte[] key, Duration ttl, byte[]... fields)
    Set time to live for given fields in milliseconds.
    default List<Long>
    hpExpireAt(byte[] key, long unixTimeInMillis, byte[]... fields)
    Set the expiration for given field as a UNIX timestamp in milliseconds.
    hpExpireAt(byte[] key, long unixTimeInMillis, ExpirationOptions.Condition condition, byte[]... fields)
    Set the expiration for given field as a UNIX timestamp in milliseconds.
    hpTtl(byte[] key, byte[]... fields)
    Get the time to live for fields in milliseconds.
    byte[]
    hRandField(byte[] key)
    Return a random field from the hash stored at key.
    List<byte[]>
    hRandField(byte[] key, long count)
    Return a random field from the hash stored at key.
    Map.Entry<byte[],byte[]>
    Return a random field from the hash along with its value stored at key.
    List<Map.Entry<byte[],byte[]>>
    hRandFieldWithValues(byte[] key, long count)
    Return a random field from the hash along with its value stored at key.
    Cursor<Map.Entry<byte[],byte[]>>
    hScan(byte[] key, ScanOptions options)
    Use a Cursor to iterate over entries in hash at key.
    hSet(byte[] key, byte[] field, byte[] value)
    Set the value of a hash field.
    hSetNX(byte[] key, byte[] field, byte[] value)
    Set the value of a hash field only if field does not exist.
    hStrLen(byte[] key, byte[] field)
    Returns the length of the value associated with field in the hash stored at key.
    hTtl(byte[] key, byte[]... fields)
    Get the time to live for fields in seconds.
    hTtl(byte[] key, TimeUnit timeUnit, byte[]... fields)
    Get the time to live for fields in and convert it to the given TimeUnit.
    List<byte[]>
    hVals(byte[] key)
    Get entry set (values) of hash at field.
  • Method Details

    • hSet

      @Nullable Boolean hSet(byte[] key, byte[] field, byte[] value)
      Set the value of a hash field.
      Parameters:
      key - must not be null.
      field - must not be null.
      value - must not be null.
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • hSetNX

      @Nullable Boolean hSetNX(byte[] key, byte[] field, byte[] value)
      Set the value of a hash field only if field does not exist.
      Parameters:
      key - must not be null.
      field - must not be null.
      value - must not be null.
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • hGet

      @Nullable byte[] hGet(byte[] key, byte[] field)
      Get value for given field from hash at key.
      Parameters:
      key - must not be null.
      field - must not be null.
      Returns:
      null when key or field do not exists or when used in pipeline / transaction.
      See Also:
    • hMGet

      @Nullable List<byte[]> hMGet(byte[] key, byte[]... fields)
      Get values for given fields from hash at key. Values are in the order of the requested keys Absent field values are represented using null in the resulting List.
      Parameters:
      key - must not be null.
      fields - must not be empty.
      Returns:
      empty List if key does not exist. null when used in pipeline / transaction.
      See Also:
    • hMSet

      void hMSet(byte[] key, Map<byte[],byte[]> hashes)
      Set multiple hash fields to multiple values using data provided in hashes
      Parameters:
      key - must not be null.
      hashes - must not be null.
      See Also:
    • hIncrBy

      @Nullable Long hIncrBy(byte[] key, byte[] field, long delta)
      Increment value of a hash field by the given delta.
      Parameters:
      key - must not be null.
      field - must not be null.
      delta -
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • hIncrBy

      @Nullable Double hIncrBy(byte[] key, byte[] field, double delta)
      Increment value of a hash field by the given delta.
      Parameters:
      key - must not be null.
      field - must not be null.
      delta -
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • hExists

      @Nullable Boolean hExists(byte[] key, byte[] field)
      Determine if given hash field exists.
      Parameters:
      key - must not be null.
      field - must not be null.
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • hDel

      @Nullable Long hDel(byte[] key, byte[]... fields)
      Delete given hash fields.
      Parameters:
      key - must not be null.
      fields - must not be empty.
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • hLen

      @Nullable Long hLen(byte[] key)
      Get size of hash at key.
      Parameters:
      key - must not be null.
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • hKeys

      @Nullable Set<byte[]> hKeys(byte[] key)
      Get key set (fields) of hash at key.
      Parameters:
      key - must not be null.
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • hVals

      @Nullable List<byte[]> hVals(byte[] key)
      Get entry set (values) of hash at field.
      Parameters:
      key - must not be null.
      Returns:
      empty List if key does not exist. null when used in pipeline / transaction.
      See Also:
    • hGetAll

      @Nullable Map<byte[],byte[]> hGetAll(byte[] key)
      Get entire hash stored at key.
      Parameters:
      key - must not be null.
      Returns:
      empty Map if key does not exist or null when used in pipeline / transaction.
      See Also:
    • hRandField

      @Nullable byte[] hRandField(byte[] key)
      Return a random field from the hash stored at key.
      Parameters:
      key - must not be null.
      Returns:
      null if key does not exist or when used in pipeline / transaction.
      Since:
      2.6
      See Also:
    • hRandFieldWithValues

      @Nullable Map.Entry<byte[],byte[]> hRandFieldWithValues(byte[] key)
      Return a random field from the hash along with its value stored at key.
      Parameters:
      key - must not be null.
      Returns:
      null if key does not exist or when used in pipeline / transaction.
      Since:
      2.6
      See Also:
    • hRandField

      @Nullable List<byte[]> hRandField(byte[] key, long count)
      Return a random field from the hash stored at key. If the provided count argument is positive, return a list of distinct fields, capped either at count or the hash size. If count is negative, the behavior changes and the command is allowed to return the same field multiple times. In this case, the number of returned fields is the absolute value of the specified count.
      Parameters:
      key - must not be null.
      count - number of fields to return.
      Returns:
      null if key does not exist or when used in pipeline / transaction.
      Since:
      2.6
      See Also:
    • hRandFieldWithValues

      @Nullable List<Map.Entry<byte[],byte[]>> hRandFieldWithValues(byte[] key, long count)
      Return a random field from the hash along with its value stored at key. If the provided count argument is positive, return a list of distinct fields, capped either at count or the hash size. If count is negative, the behavior changes and the command is allowed to return the same field multiple times. In this case, the number of returned fields is the absolute value of the specified count.
      Parameters:
      key - must not be null.
      count - number of fields to return.
      Returns:
      null if key does not exist or when used in pipeline / transaction.
      Since:
      2.6
      See Also:
    • hScan

      Cursor<Map.Entry<byte[],byte[]>> hScan(byte[] key, ScanOptions options)
      Use a Cursor to iterate over entries in hash at key.
      Parameters:
      key - must not be null.
      options - must not be null.
      Returns:
      Since:
      1.4
      See Also:
    • hStrLen

      @Nullable Long hStrLen(byte[] key, byte[] field)
      Returns the length of the value associated with field in the hash stored at key. If the key or the field do not exist, 0 is returned.
      Parameters:
      key - must not be null.
      field - must not be null.
      Returns:
      null when used in pipeline / transaction.
      Since:
      2.1
      See Also:
    • applyHashFieldExpiration

      @Nullable default List<Long> applyHashFieldExpiration(byte[] key, Expiration expiration, byte[]... fields)
      Apply a given Expiration to the given fields.
      Parameters:
      key - must not be null.
      expiration - the Expiration to apply.
      fields - the names of the fields to apply the expiration to.
      Returns:
      a List holding the command result for each field in order - 2 indicating the specific field is deleted already due to expiration, or provided expiry interval is 0; 1 indicating expiration time is set/updated; 0 indicating the expiration time is not set; -2 indicating there is no such field;
      Since:
      3.5
    • applyHashFieldExpiration

      @Nullable default List<Long> applyHashFieldExpiration(byte[] key, Expiration expiration, ExpirationOptions options, byte[]... fields)
      Parameters:
      key - must not be null.
      expiration - the Expiration to apply.
      options - additional options to be sent along with the command.
      fields - the names of the fields to apply the expiration to.
      Returns:
      a List holding the command result for each field in order - 2 indicating the specific field is deleted already due to expiration, or provided expiry interval is 0; 1 indicating expiration time is set/updated; 0 indicating the expiration time is not set (a provided NX | XX | GT | LT condition is not met); -2 indicating there is no such field;
      Since:
      3.5
    • hExpire

      @Nullable default List<Long> hExpire(byte[] key, long seconds, byte[]... fields)
      Set time to live for given fields in seconds.
      Parameters:
      key - must not be null.
      seconds - the amount of time after which the fields will be expired in seconds, must not be null.
      fields - must not be null.
      Returns:
      a list of Long values for each of the fields provided: 2 indicating the specific field is deleted already due to expiration, or provided expiry interval is 0; 1 indicating expiration time is set/updated; 0 indicating the expiration time is not set; -2 indicating there is no such field; null when used in pipeline / transaction.
      Since:
      3.5
      See Also:
    • hExpire

      @Nullable default List<Long> hExpire(byte[] key, Duration ttl, byte[]... fields)
      Set time to live for given fields.
      Parameters:
      key - must not be null.
      ttl - the amount of time after which the fields will be expired in seconds precision, must not be null.
      fields - must not be null.
      Returns:
      a list of Long values for each of the fields provided: 2 indicating the specific field is deleted already due to expiration, or provided expiry interval is 0; 1 indicating expiration time is set/updated; 0 indicating the expiration time is not set; -2 indicating there is no such field; null when used in pipeline / transaction.
      Since:
      3.5
      See Also:
    • hExpire

      @Nullable List<Long> hExpire(byte[] key, long seconds, ExpirationOptions.Condition condition, byte[]... fields)
      Set time to live for given fields in seconds.
      Parameters:
      key - must not be null.
      seconds - the amount of time after which the fields will be expired in seconds, must not be null.
      fields - must not be null.
      condition - the condition for expiration, must not be null.
      Returns:
      a list of Long values for each of the fields provided: 2 indicating the specific field is deleted already due to expiration, or provided expiry interval is 0; 1 indicating expiration time is set/updated; 0 indicating the expiration time is not set (a provided NX | XX | GT | LT condition is not met); -2 indicating there is no such field; null when used in pipeline / transaction.
      Since:
      3.5
      See Also:
    • hpExpire

      @Nullable default List<Long> hpExpire(byte[] key, long millis, byte[]... fields)
      Set time to live for given fields in milliseconds.
      Parameters:
      key - must not be null.
      millis - the amount of time after which the fields will be expired in milliseconds, must not be null.
      fields - must not be null.
      Returns:
      a list of Long values for each of the fields provided: 2 indicating the specific field is deleted already due to expiration, or provided expiry interval is 0; 1 indicating expiration time is set/updated; 0 indicating the expiration time is not set ; -2 indicating there is no such field; null when used in pipeline / transaction.
      Since:
      3.5
      See Also:
    • hpExpire

      @Nullable default List<Long> hpExpire(byte[] key, Duration ttl, byte[]... fields)
      Set time to live for given fields in milliseconds.
      Parameters:
      key - must not be null.
      ttl - the amount of time after which the fields will be expired in milliseconds precision, must not be null.
      fields - must not be null.
      Returns:
      a list of Long values for each of the fields provided: 2 indicating the specific field is deleted already due to expiration, or provided expiry interval is 0; 1 indicating expiration time is set/updated; 0 indicating the expiration time is not set; -2 indicating there is no such field; null when used in pipeline / transaction.
      Since:
      3.5
      See Also:
    • hpExpire

      @Nullable List<Long> hpExpire(byte[] key, long millis, ExpirationOptions.Condition condition, byte[]... fields)
      Set time to live for given fields in milliseconds.
      Parameters:
      key - must not be null.
      millis - the amount of time after which the fields will be expired in milliseconds, must not be null.
      condition - the condition for expiration, must not be null.
      fields - must not be null.
      Returns:
      a list of Long values for each of the fields provided: 2 indicating the specific field is deleted already due to expiration, or provided expiry interval is 0; 1 indicating expiration time is set/updated; 0 indicating the expiration time is not set (a provided NX | XX | GT | LT condition is not met); -2 indicating there is no such field; null when used in pipeline / transaction.
      Since:
      3.5
      See Also:
    • hExpireAt

      @Nullable default List<Long> hExpireAt(byte[] key, long unixTime, byte[]... fields)
      Set the expiration for given field as a UNIX timestamp.
      Parameters:
      key - must not be null.
      unixTime - the moment in time in which the field expires, must not be null.
      fields - must not be null.
      Returns:
      a list of Long values for each of the fields provided: 2 indicating the specific field is deleted already due to expiration, or provided expiry interval is in the past; 1 indicating expiration time is set/updated; 0 indicating the expiration time is not set; -2 indicating there is no such field; null when used in pipeline / transaction.
      Since:
      3.5
      See Also:
    • hExpireAt

      @Nullable List<Long> hExpireAt(byte[] key, long unixTime, ExpirationOptions.Condition condition, byte[]... fields)
      Set the expiration for given field as a UNIX timestamp.
      Parameters:
      key - must not be null.
      unixTime - the moment in time in which the field expires, must not be null.
      condition - the condition for expiration, must not be null.
      fields - must not be null.
      Returns:
      a list of Long values for each of the fields provided: 2 indicating the specific field is deleted already due to expiration, or provided expiry interval is in the past; 1 indicating expiration time is set/updated; 0 indicating the expiration time is not set (a provided NX | XX | GT | LT condition is not met); -2 indicating there is no such field; null when used in pipeline / transaction.
      Since:
      3.5
      See Also:
    • hpExpireAt

      @Nullable default List<Long> hpExpireAt(byte[] key, long unixTimeInMillis, byte[]... fields)
      Set the expiration for given field as a UNIX timestamp in milliseconds.
      Parameters:
      key - must not be null.
      unixTimeInMillis - the moment in time in which the field expires in milliseconds, must not be null.
      fields - must not be null.
      Returns:
      a list of Long values for each of the fields provided: 2 indicating the specific field is deleted already due to expiration, or provided expiry interval is in the past; 1 indicating expiration time is set/updated; 0 indicating the expiration time is not set; -2 indicating there is no such field; null when used in pipeline / transaction.
      Since:
      3.5
      See Also:
    • hpExpireAt

      @Nullable List<Long> hpExpireAt(byte[] key, long unixTimeInMillis, ExpirationOptions.Condition condition, byte[]... fields)
      Set the expiration for given field as a UNIX timestamp in milliseconds.
      Parameters:
      key - must not be null.
      unixTimeInMillis - the moment in time in which the field expires in milliseconds, must not be null.
      condition - the condition for expiration, must not be null.
      fields - must not be null.
      Returns:
      a list of Long values for each of the fields provided: 2 indicating the specific field is deleted already due to expiration, or provided expiry interval is in the past; 1 indicating expiration time is set/updated; 0 indicating the expiration time is not set (a provided NX | XX | GT | LT condition is not met); -2 indicating there is no such field; null when used in pipeline / transaction.
      Since:
      3.5
      See Also:
    • hPersist

      @Nullable List<Long> hPersist(byte[] key, byte[]... fields)
      Remove the expiration from given field.
      Parameters:
      key - must not be null.
      fields - must not be null.
      Returns:
      a list of Long values for each of the fields provided: 1 indicating expiration time is removed; -1 field has no expiration time to be removed; -2 indicating there is no such field; null when used in pipeline / transaction.null when used in pipeline / transaction.
      Since:
      3.5
      See Also:
    • hTtl

      @Nullable List<Long> hTtl(byte[] key, byte[]... fields)
      Get the time to live for fields in seconds.
      Parameters:
      key - must not be null.
      fields - must not be null.
      Returns:
      a list of Long values for each of the fields provided: the time to live in seconds; or a negative value to signal an error. The command returns -1 if the field exists but has no associated expiration time. The command returns -2 if the field does not exist; null when used in pipeline / transaction.
      Since:
      3.5
      See Also:
    • hTtl

      @Nullable List<Long> hTtl(byte[] key, TimeUnit timeUnit, byte[]... fields)
      Get the time to live for fields in and convert it to the given TimeUnit.
      Parameters:
      key - must not be null.
      timeUnit - must not be null.
      fields - must not be null.
      Returns:
      for each of the fields supplied - the time to live in the TimeUnit provided; or a negative value to signal an error. The command returns -1 if the key exists but has no associated expiration time. The command returns -2 if the key does not exist; null when used in pipeline / transaction.
      Since:
      3.5
      See Also:
    • hpTtl

      @Nullable List<Long> hpTtl(byte[] key, byte[]... fields)
      Get the time to live for fields in milliseconds.
      Parameters:
      key - must not be null.
      fields - must not be null.
      Returns:
      a list of Long values for each of the fields provided: the time to live in seconds; or a negative value to signal an error. The command returns -1 if the key exists but has no associated expiration time. The command returns -2 if the key does not exist; null when used in pipeline / transaction.
      Since:
      3.5
      See Also: