Removes elements from a list. Deletes the list if the last element was removed.
LREM
key count
element
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
.
Integer reply: the number of removed elements.
O(N+M) where N is the length of the list and M is the number of elements removed.
@list @slow @write
127.0.0.1:6379> RPUSH mylist "hello"
(integer) 1
127.0.0.1:6379> RPUSH mylist "hello"
(integer) 2
127.0.0.1:6379> RPUSH mylist "foo"
(integer) 3
127.0.0.1:6379> RPUSH mylist "hello"
(integer) 4
127.0.0.1:6379> LREM mylist -2 "hello"
(integer) 2
127.0.0.1:6379> LRANGE mylist 0 -1
1) "hello"
2) "foo"
BLMOVE, BLMPOP, BLPOP, BRPOP, LINDEX, LINSERT, LLEN, LMOVE, LMPOP, LPOP, LPOS, LPUSH, LPUSHX, LRANGE, LSET, LTRIM, RPOP, RPUSH, RPUSHX.