Redis LREM 命令
Redis LREM 命令用于从列表中删除与给定值匹配的元素。
语法:LREM key count value
其中:
- key:列表的键名。
- count:表示删除元素的数量。count 可以是以下两个值之一:
- count > 0:从列表的头部开始向尾部搜索,并删除与 value 相等的元素,直到删除 count 个元素为止。
- count < 0:从列表的尾部开始向头部搜索,并删除与 value 相等的元素,直到删除 count 个元素为止。
- count = 0:删除列表中所有与 value 相等的元素。
- value:要删除的元素的值。
返回值:被删除的元素的数量。
注意事项:
- count 的值可以超过实际列表中与 value 相等的元素数量,如果 count 的值为正数,则表示从头部或尾部删除相应数量的元素,如果 count 的值为负数,则表示从尾部或头部删除相应数量的元素。
- 当 count 为非零值时,如果未找到与 value 匹配的元素,则不会进行任何删除操作。
示例:
> LPUSH mylist "hello"
(integer) 1
> LPUSH mylist "hello"
(integer) 2
> LPUSH mylist "world"
(integer) 3
> LREM mylist 2 "hello" # 从头部开始删除 2 个值为 "hello" 的元素
(integer) 2
> LRANGE mylist 0 -1
1) "world"
> LREM mylist -1 "world" # 从尾部开始删除 1 个值为 "world" 的元素
(integer) 1
> LRANGE mylist 0 -1
(empty list or set)
> LPUSH mylist "foo"
(integer) 1
> LPUSH mylist "foo"
(integer) 2
> LPUSH mylist "foo"
(integer) 3
> LREM mylist 0 "foo" # 删除所有值为 "foo" 的元素
(integer) 3
> LRANGE mylist 0 -1
(empty list or set)