Interface ListCommands<K,​V>

  • Type Parameters:
    K - the type of the key
    V - the type of the value stored in the lists
    All Superinterfaces:
    RedisCommands
    All Known Implementing Classes:
    BlockingListCommandsImpl

    public interface ListCommands<K,​V>
    extends RedisCommands
    Allows executing commands from the list group. See the list command list for further information about these commands.

    A list is a bag of members of type V. Unlike set, you can have duplicated, and unlike sorted set, the members are not sorted.

    • Method Detail

      • blmove

        V blmove​(K source,
                 K destination,
                 Position positionInSource,
                 Position positionInDest,
                 Duration timeout)
        Execute the command BLMOVE. Summary: Pop an element from a list, push it to another list and return it; or block until one is available Group: list Requires Redis 6.2.0
        Parameters:
        source - the key
        destination - the key
        positionInSource - the position of the element in the source, LEFT means the first element, RIGHT means the last element.
        positionInDest - the position of the element in the destination, LEFT means the first element, RIGHT means the last element.
        timeout - the operation timeout (in seconds)
        Returns:
        the element being popped from source and pushed to destination. If timeout is reached, a Null reply is returned.
      • blmpop

        KeyValue<K,​V> blmpop​(Duration timeout,
                                   Position position,
                                   K... keys)
        Execute the command BLMPOP. Summary: Pop elements from a list, or block until one is available Group: list Requires Redis 7.0.0
        Parameters:
        timeout - the operation timeout (in seconds)
        position - whether if the element must be popped from the beginning of the list (LEFT) or from the end (RIGHT)
        keys - the keys from which the element must be popped
        Returns:
        null when no element could be popped, and timeout is reached, otherwise the key/value structure
      • blmpop

        List<KeyValue<K,​V>> blmpop​(Duration timeout,
                                         Position position,
                                         int count,
                                         K... keys)
        Execute the command BLMPOP. Summary: Pop elements from a list, or block until one is available Group: list Requires Redis 7.0.0
        Parameters:
        timeout - the operation timeout (in seconds)
        position - whether if the element must be popped from the beginning of the list (LEFT) or from the end (RIGHT)
        count - the number of element to pop
        keys - the keys from which the element must be popped
        Returns:
        null when no element could be popped, and timeout is reached, otherwise the list of key/value structures
      • blpop

        KeyValue<K,​V> blpop​(Duration timeout,
                                  K... keys)
        Execute the command BLPOP. Summary: Remove and get the first element in a list, or block until one is available Group: list Requires Redis 2.0.0
        Parameters:
        timeout - the operation timeout (in seconds)
        keys - the keys from which the element must be popped
        Returns:
        A null multi-bulk when no element could be popped and the timeout expired, otherwise the key/value structure.
      • brpop

        KeyValue<K,​V> brpop​(Duration timeout,
                                  K... keys)
        Execute the command BRPOP. Summary: Remove and get the last element in a list, or block until one is available Group: list Requires Redis 2.0.0
        Parameters:
        timeout - the operation timeout (in seconds)
        keys - the keys from which the element must be popped
        Returns:
        A null multi-bulk when no element could be popped and the timeout expired, otherwise the key/value structure.
      • brpoplpush

        @Deprecated
        V brpoplpush​(Duration timeout,
                     K source,
                     K destination)
        Deprecated.
        See https://redis.io/commands/brpoplpush
        Execute the command BRPOPLPUSH. Summary: Pop an element from a list, push it to another list and return it; or block until one is available Group: list Requires Redis 2.2.0
        Parameters:
        timeout - the timeout, in seconds
        source - the source key
        destination - the detination key
        Returns:
        the element being popped from source and pushed to destination. If timeout is reached, a Null reply is returned.
      • lindex

        V lindex​(K key,
                 long index)
        Execute the command LINDEX. Summary: Get an element from a list by its index Group: list Requires Redis 1.0.0
        Parameters:
        key - the key
        index - the index
        Returns:
        the requested element, or null when index is out of range.
      • linsertBeforePivot

        long linsertBeforePivot​(K key,
                                V pivot,
                                V element)
        Execute the command LINSERT. Summary: Insert an element before another element in a list Group: list Requires Redis 2.2.0
        Parameters:
        key - the key
        pivot - the pivot, i.e. the position reference
        element - the element to insert
        Returns:
        the length of the list after the insert operation, or -1 when the value pivot was not found.
      • linsertAfterPivot

        long linsertAfterPivot​(K key,
                               V pivot,
                               V element)
        Execute the command LINSERT. Summary: Insert an element after another element in a list Group: list Requires Redis 2.2.0
        Parameters:
        key - the key
        pivot - the pivot, i.e. the position reference
        element - the element to insert
        Returns:
        the length of the list after the insert operation, or -1 when the value pivot was not found.
      • llen

        long llen​(K key)
        Execute the command LLEN. Summary: Get the length of a list Group: list Requires Redis 1.0.0
        Parameters:
        key - the key
        Returns:
        the length of the list at key, if the list is empty, 0 is returned.
      • lmove

        V lmove​(K source,
                K destination,
                Position positionInSource,
                Position positionInDestination)
        Execute the command LMOVE. Summary: Pop an element from a list, push it to another list and return it Group: list Requires Redis 6.2.0
        Parameters:
        source - the key
        destination - the key
        positionInSource - the position of the element to pop in the source (LEFT: first element, RIGHT: last element)
        positionInDestination - the position of the element to insert in the destination (LEFT: first element, RIGHT: last element)
        Returns:
        the element being popped and pushed.
      • lmpop

        KeyValue<K,​V> lmpop​(Position position,
                                  K... keys)
        Execute the command LMPOP. Summary: Pop one element from the first non-empty list Group: list Requires Redis 7.0.0
        Parameters:
        position - the position of the item to pop (LEFT: beginning ot the list, RIGHT: end of the list)
        keys - the keys from which the item will be popped, must not be empty
        Returns:
        A null when no element could be popped. A KeyValue with the key and popped value.
      • lmpop

        List<KeyValue<K,​V>> lmpop​(Position position,
                                        int count,
                                        K... keys)
        Execute the command LMPOP. Summary: Pop count elements from the first non-empty list Group: list Requires Redis 7.0.0
        Parameters:
        position - the position of the item to pop (LEFT: beginning ot the list, RIGHT: end of the list)
        count - the number of items to pop
        keys - the keys from which the item will be popped, must not be empty
        Returns:
        empty when no element could be popped. A list of KeyValue with at most count items.
      • lpop

        V lpop​(K key)
        Execute the command LPOP. Summary: Remove and get the first elements in a list Group: list Requires Redis 1.0.0
        Parameters:
        key - the key
        Returns:
        the value of the first element, or null when key does not exist.
      • lpop

        List<V> lpop​(K key,
                     int count)
        Execute the command LPOP. Summary: Remove and get the first elements in a list Group: list Requires Redis 1.0.0
        Parameters:
        key - the key
        count - the number of element to pop
        Returns:
        the popped elements (at most count), or empty when key does not exist.
      • lpos

        OptionalLong lpos​(K key,
                          V element)
        Execute the command LPOS. Summary: Return the index of matching elements on a list Group: list Requires Redis 6.0.6
        Parameters:
        key - the key
        element - the element to find
        Returns:
        The command returns the integer representing the matching element, or empty if there is no match.
      • lpos

        OptionalLong lpos​(K key,
                          V element,
                          LPosArgs args)
        Execute the command LPOS. Summary: Return the index of matching elements on a list Group: list Requires Redis 6.0.6
        Parameters:
        key - the key
        element - the element to find
        args - the extra command parameter
        Returns:
        The command returns the integer representing the matching element, or empty if there is no match.
      • lpos

        List<Long> lpos​(K key,
                        V element,
                        int count)
        Execute the command LPOS. Summary: Return the index of matching elements on a list Group: list Requires Redis 6.0.6
        Parameters:
        key - the key
        element - the element to find
        count - the number of occurrence to find
        Returns:
        the list of positions (empty if there are no matches).
      • lpos

        List<Long> lpos​(K key,
                        V element,
                        int count,
                        LPosArgs args)
        Execute the command LPOS. Summary: Return the index of matching elements on a list Group: list Requires Redis 6.0.6
        Parameters:
        key - the key
        element - the element to find
        count - the number of occurrence to find
        Returns:
        the list of positions (empty if there are no matches).
      • lpush

        long lpush​(K key,
                   V... elements)
        Execute the command LPUSH. Summary: Prepend one or multiple elements to a list Group: list Requires Redis 1.0.0
        Parameters:
        key - the key
        elements - the elements to add
        Returns:
        the length of the list after the push operations.
      • lpushx

        long lpushx​(K key,
                    V... elements)
        Execute the command LPUSHX. Summary: Prepend an element to a list, only if the list exists Group: list Requires Redis 2.2.0
        Parameters:
        key - the key
        elements - the elements to add
        Returns:
        the length of the list after the push operation.
      • lrange

        List<V> lrange​(K key,
                       long start,
                       long stop)
        Execute the command LRANGE. Summary: Get a range of elements from a list Group: list Requires Redis 1.0.0
        Parameters:
        key - the key
        start - the starting position
        stop - the last position
        Returns:
        list of elements in the specified range.
      • lrem

        long lrem​(K key,
                  long count,
                  V element)
        Execute the command LREM. Summary: Remove elements from a list Group: list Requires Redis 1.0.0
        Parameters:
        key - the key
        count - the number of occurence to remove, following the given rules: if count > 0: Remove elements equal to element moving from head to tail. if count < 0: Remove elements equal to element moving from tail to head. if count = 0: Remove all elements equal to element.
        element - the element to remove
        Returns:
        the number of removed elements.
      • lset

        void lset​(K key,
                  long index,
                  V element)
        Execute the command LSET. Summary: Set the value of an element in a list by its index Group: list Requires Redis 1.0.0
        Parameters:
        key - the key
        index - the index
        element - the element to insert
      • ltrim

        void ltrim​(K key,
                   long start,
                   long stop)
        Execute the command LTRIM. Summary: Trim a list to the specified range Group: list Requires Redis 1.0.0
        Parameters:
        key - the key
        start - the starting index
        stop - the last index
      • rpop

        V rpop​(K key)
        Execute the command RPOP. Summary: Remove and get the last elements in a list Group: list Requires Redis 1.0.0
        Parameters:
        key - the key
        Returns:
        the value of the last element, or null when key does not exist.
      • rpop

        List<V> rpop​(K key,
                     int count)
        Execute the command RPOP. Summary: Remove and get the last elements in a list Group: list Requires Redis 1.0.0
        Parameters:
        key - the key
        count - the number of element to pop
        Returns:
        the list of popped elements, or null when key does not exist.
      • rpoplpush

        @Deprecated
        V rpoplpush​(K source,
                    K destination)
        Deprecated.
        See https://redis.io/commands/rpoplpush
        Execute the command RPOPLPUSH. Summary: Remove the last element in a list, prepend it to another list and return it Group: list Requires Redis 1.2.0
        Parameters:
        source - the key
        destination - the key
        Returns:
        the element being popped and pushed, or null if the source does not exist
      • rpush

        long rpush​(K key,
                   V... values)
        Execute the command RPUSH. Summary: Append one or multiple elements to a list Group: list Requires Redis 1.0.0
        Parameters:
        key - the key
        values - the values to add to the list
        Returns:
        the length of the list after the push operation.
      • rpushx

        long rpushx​(K key,
                    V... values)
        Execute the command RPUSHX. Summary: Append an element to a list, only if the list exists Group: list Requires Redis 2.2.0
        Parameters:
        key - the key
        values - the values to add to the list
        Returns:
        the length of the list after the push operation.
      • sort

        List<V> sort​(K key)
        Execute the command SORT. Summary: Sort the elements in a list, set or sorted set Group: generic Requires Redis 1.0.0
        Returns:
        the list of sorted elements.
      • sort

        List<V> sort​(K key,
                     SortArgs sortArguments)
        Execute the command SORT. Summary: Sort the elements in a list, set or sorted set Group: generic Requires Redis 1.0.0
        Parameters:
        key - the key
        sortArguments - the SORT command extra-arguments
        Returns:
        the list of sorted elements.
      • sortAndStore

        long sortAndStore​(K key,
                          K destination,
                          SortArgs sortArguments)
        Execute the command SORT with the STORE option. Summary: Sort the elements in a list, set or sorted set Group: generic Requires Redis 1.0.0
        Parameters:
        sortArguments - the SORT command extra-arguments
        Returns:
        the number of sorted elements in the destination list.
      • sortAndStore

        long sortAndStore​(K key,
                          K destination)
        Execute the command SORT with the STORE option. Summary: Sort the elements in a list, set or sorted set Group: generic Requires Redis 1.0.0
        Returns:
        the number of sorted elements in the destination list.