LREM key count element

Available since 1.0.0.

Time complexity: O(N+M) where N is the length of the list and M is the number of elements removed.

Removes the first count occurrences of elements equal to element from the list stored at key. The count argument influences the operation in the following ways:

  • count > 0: Remove elements equal to element moving from head to tail.
  • count < 0: Remove elements equal to element moving from tail to head.
  • count = 0: Remove all elements equal to element.

For example, LREM list -2 "hello" will remove the last two occurrences of "hello" in the list stored at list.

Note that non-existing keys are treated like empty lists, so when key does not exist, the command will always return 0.

*Return value

Integer reply: the number of removed elements.

*Examples

redis> RPUSH mylist "hello"

  1. (integer) 1

redis> RPUSH mylist "hello"

  1. (integer) 2

redis> RPUSH mylist "foo"

  1. (integer) 3

redis> RPUSH mylist "hello"

  1. (integer) 4

redis> LREM mylist -2 "hello"

  1. (integer) 2

redis> LRANGE mylist 0 -1

  1. 1) "hello"
  2. 2) "foo"
redis>