LREM

Syntax

1. LREM key count element

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

ACL categories: @write, @list, @slow

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

Integer reply: the number of removed elements.

Examples

1. dragonfly> RPUSH mylist "hello"
2. (integer) 1
3. dragonfly> RPUSH mylist "hello"
4. (integer) 2
5. dragonfly> RPUSH mylist "foo"
6. (integer) 3
7. dragonfly> RPUSH mylist "hello"
8. (integer) 4
9. dragonfly> LREM mylist -2 "hello"
10. (integer) 2
11. dragonfly> LRANGE mylist 0 -1
12. 1) "hello"
13. 2) "foo"