Interface RedisListCommands

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

public interface RedisListCommands
List-specific commands supported by Redis.
Author:
Costin Leau, Christoph Strobl, Mark Paluch, dengliming
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static enum 
    List move direction.
    static enum 
    List insertion position.
  • Method Summary

    Modifier and Type
    Method
    Description
    byte[]
    bLMove(byte[] sourceKey, byte[] destinationKey, RedisListCommands.Direction from, RedisListCommands.Direction to, double timeout)
    Atomically returns and removes the first/last element (head/tail depending on the from argument) of the list stored at sourceKey, and pushes the element at the first/last element (head/tail depending on the to argument) of the list stored at destinationKey.
    List<byte[]>
    bLPop(int timeout, byte[]... keys)
    Removes and returns first element from lists stored at keys.
    List<byte[]>
    bRPop(int timeout, byte[]... keys)
    Removes and returns last element from lists stored at keys.
    byte[]
    bRPopLPush(int timeout, byte[] srcKey, byte[] dstKey)
    Remove the last element from list at srcKey, append it to dstKey and return its value.
    byte[]
    lIndex(byte[] key, long index)
    Get element at index form list at key.
    lInsert(byte[] key, RedisListCommands.Position where, byte[] pivot, byte[] value)
    lLen(byte[] key)
    Get the size of list stored at key.
    byte[]
    lMove(byte[] sourceKey, byte[] destinationKey, RedisListCommands.Direction from, RedisListCommands.Direction to)
    Atomically returns and removes the first/last element (head/tail depending on the from argument) of the list stored at sourceKey, and pushes the element at the first/last element (head/tail depending on the to argument) of the list stored at destinationKey.
    byte[]
    lPop(byte[] key)
    Removes and returns first element in list stored at key.
    List<byte[]>
    lPop(byte[] key, long count)
    Removes and returns first elements in list stored at key.
    default Long
    lPos(byte[] key, byte[] element)
    Returns the index of matching elements inside the list stored at given key.
    lPos(byte[] key, byte[] element, Integer rank, Integer count)
    Returns the index of matching elements inside the list stored at given key.
    lPush(byte[] key, byte[]... values)
    Prepend values to key.
    lPushX(byte[] key, byte[] value)
    Prepend values to key only if the list exists.
    List<byte[]>
    lRange(byte[] key, long start, long end)
    Get elements between start and end from list at key.
    lRem(byte[] key, long count, byte[] value)
    Removes the first count occurrences of value from the list stored at key.
    void
    lSet(byte[] key, long index, byte[] value)
    Set the value list element at index.
    void
    lTrim(byte[] key, long start, long end)
    Trim list at key to elements between start and end.
    byte[]
    rPop(byte[] key)
    Removes and returns last element in list stored at key.
    List<byte[]>
    rPop(byte[] key, long count)
    Removes and returns last elements in list stored at key.
    byte[]
    rPopLPush(byte[] srcKey, byte[] dstKey)
    Remove the last element from list at srcKey, append it to dstKey and return its value.
    rPush(byte[] key, byte[]... values)
    Append values to key.
    rPushX(byte[] key, byte[] value)
    Append values to key only if the list exists.
  • Method Details

    • rPush

      @Nullable Long rPush(byte[] key, byte[]... values)
      Append values to key.
      Parameters:
      key - must not be null.
      values - must not be empty.
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • lPos

      @Nullable default Long lPos(byte[] key, byte[] element)
      Returns the index of matching elements inside the list stored at given key.
      Requires Redis 6.0.6 or newer.
      Parameters:
      key - must not be null.
      element - must not be null.
      Returns:
      null when used in pipeline / transaction.
      Since:
      2.4
      See Also:
    • lPos

      @Nullable List<Long> lPos(byte[] key, byte[] element, @Nullable Integer rank, @Nullable Integer count)
      Returns the index of matching elements inside the list stored at given key.
      Requires Redis 6.0.6 or newer.
      Parameters:
      key - must not be null.
      element - must not be null.
      rank - specifies the "rank" of the first element to return, in case there are multiple matches. A rank of 1 means to return the first match, 2 to return the second match, and so forth.
      count - number of matches to return.
      Returns:
      null when used in pipeline / transaction.
      Since:
      2.4
      See Also:
    • lPush

      @Nullable Long lPush(byte[] key, byte[]... values)
      Prepend values to key.
      Parameters:
      key - must not be null.
      values - must not be empty.
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • rPushX

      @Nullable Long rPushX(byte[] key, byte[] value)
      Append values to key only if the list exists.
      Parameters:
      key - must not be null.
      value - must not be null.
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • lPushX

      @Nullable Long lPushX(byte[] key, byte[] value)
      Prepend values to key only if the list exists.
      Parameters:
      key - must not be null.
      value - must not be null.
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • lLen

      @Nullable Long lLen(byte[] key)
      Get the size of list stored at key.
      Parameters:
      key - must not be null.
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • lRange

      @Nullable List<byte[]> lRange(byte[] key, long start, long end)
      Get elements between start and end from list at key.
      Parameters:
      key - must not be null.
      start -
      end -
      Returns:
      empty List if key does not exists or range does not contain values. null when used in pipeline / transaction.
      See Also:
    • lTrim

      void lTrim(byte[] key, long start, long end)
      Trim list at key to elements between start and end.
      Parameters:
      key - must not be null.
      start -
      end -
      See Also:
    • lIndex

      @Nullable byte[] lIndex(byte[] key, long index)
      Get element at index form list at key.
      Parameters:
      key - must not be null.
      index - zero based index value. Use negative number to designate elements starting at the tail.
      Returns:
      null when index is out of range or when used in pipeline / transaction.
      See Also:
    • lInsert

      @Nullable Long lInsert(byte[] key, RedisListCommands.Position where, byte[] pivot, byte[] value)
      Parameters:
      key - must not be null.
      where - must not be null.
      pivot - must not be null.
      value - must not be null.
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • lMove

      @Nullable byte[] lMove(byte[] sourceKey, byte[] destinationKey, RedisListCommands.Direction from, RedisListCommands.Direction to)
      Atomically returns and removes the first/last element (head/tail depending on the from argument) of the list stored at sourceKey, and pushes the element at the first/last element (head/tail depending on the to argument) of the list stored at destinationKey.
      Parameters:
      sourceKey - must not be null.
      destinationKey - must not be null.
      from - must not be null.
      to - must not be null.
      Returns:
      null when used in pipeline / transaction.
      Since:
      2.6
      See Also:
    • bLMove

      @Nullable byte[] bLMove(byte[] sourceKey, byte[] destinationKey, RedisListCommands.Direction from, RedisListCommands.Direction to, double timeout)
      Atomically returns and removes the first/last element (head/tail depending on the from argument) of the list stored at sourceKey, and pushes the element at the first/last element (head/tail depending on the to argument) of the list stored at destinationKey.

      Blocks connection until element available or timeout reached.

      Parameters:
      sourceKey - must not be null.
      destinationKey - must not be null.
      from - must not be null.
      to - must not be null.
      timeout -
      Returns:
      null when used in pipeline / transaction.
      Since:
      2.6
      See Also:
    • lSet

      void lSet(byte[] key, long index, byte[] value)
      Set the value list element at index.
      Parameters:
      key - must not be null.
      index -
      value -
      See Also:
    • lRem

      @Nullable Long lRem(byte[] key, long count, byte[] value)
      Removes the first count occurrences of value from the list stored at key.
      Parameters:
      key - must not be null.
      count -
      value -
      Returns:
      null when used in pipeline / transaction.
      See Also:
    • lPop

      @Nullable byte[] lPop(byte[] key)
      Removes and returns first element in list stored at key.
      Parameters:
      key - must not be null.
      Returns:
      null when key does not exist or used in pipeline / transaction.
      See Also:
    • lPop

      @Nullable List<byte[]> lPop(byte[] key, long count)
      Removes and returns first elements in list stored at key.
      Parameters:
      key - must not be null.
      count -
      Returns:
      null when key does not exist or used in pipeline / transaction.
      Since:
      2.6
      See Also:
    • rPop

      @Nullable byte[] rPop(byte[] key)
      Removes and returns last element in list stored at key.
      Parameters:
      key - must not be null.
      Returns:
      null when key does not exist or used in pipeline / transaction.
      See Also:
    • rPop

      @Nullable List<byte[]> rPop(byte[] key, long count)
      Removes and returns last elements in list stored at key.
      Parameters:
      key - must not be null.
      count -
      Returns:
      null when key does not exist or used in pipeline / transaction.
      Since:
      2.6
      See Also:
    • bLPop

      @Nullable List<byte[]> bLPop(int timeout, byte[]... keys)
      Removes and returns first element from lists stored at keys.
      Blocks connection until element available or timeout reached.
      Parameters:
      timeout - seconds to block.
      keys - must not be null.
      Returns:
      empty List when no element could be popped and the timeout was reached. null when used in pipeline / transaction.
      See Also:
    • bRPop

      @Nullable List<byte[]> bRPop(int timeout, byte[]... keys)
      Removes and returns last element from lists stored at keys.
      Blocks connection until element available or timeout reached.
      Parameters:
      timeout - seconds to block.
      keys - must not be null.
      Returns:
      empty List when no element could be popped and the timeout was reached. null when used in pipeline / transaction.
      See Also:
    • rPopLPush

      @Nullable byte[] rPopLPush(byte[] srcKey, byte[] dstKey)
      Remove the last element from list at srcKey, append it to dstKey and return its value.
      Parameters:
      srcKey - must not be null.
      dstKey - must not be null.
      Returns:
      can be null.
      See Also:
    • bRPopLPush

      @Nullable byte[] bRPopLPush(int timeout, byte[] srcKey, byte[] dstKey)
      Remove the last element from list at srcKey, append it to dstKey and return its value.
      Blocks connection until element available or timeout reached.
      Parameters:
      timeout - seconds to block.
      srcKey - must not be null.
      dstKey - must not be null.
      Returns:
      can be null.
      See Also: