lrem 从存储在key处的列表中删除与element相同的元素的第一个出现次数。参数count对操作的影响如下:
count > 0: 删除从头移动到尾的与元素相同的元素。
count < 0: 删除从尾部移动到头部的等于元素的元素。
count = 0: 删除所有与元素相同的元素。
例如,LREM list -2 “hello “将删除存储在list中的 “hello “的最后两次出现。
需要注意的是,不存在的键被当作空列表处理,所以当键不存在时,命令总是返回0。
lrem的格式为 lrem key count value
我们创建lrem的list,并写入a,b,c,d,e五个值
127.0.0.1:6379> lpush lrem a b c d e (integer) 5 127.0.0.1:6379> lrange lrem 0 -1 1) "e" 2) "d" 3) "c" 4) "b" 5) "a"
我们来删除元素a
127.0.0.1:6379> lrem lrem 1 a (integer) 1 127.0.0.1:6379> lrange lrem 0 -1 1) "e" 2) "d" 3) "c" 4) "b"
我们发现元素a已经删除,目前b,c,d,e都只有一个,如果我们要删除两个元素b,看看结果是什么
127.0.0.1:6379> lrem lrem 2 b (integer) 1 127.0.0.1:6379> lrange lrem 0 -1 1) "e" 2) "d" 3) "c"
是没有报错的,可以正常删除,现在我们再push b,c,d,e,b,d,d,e
127.0.0.1:6379> lpush lrem b c d e b d d e (integer) 11 127.0.0.1:6379> lrange lrem 0 -1 1) "e" 2) "d" 3) "d" 4) "b" 5) "e" 6) "d" 7) "c" 8) "b" 9) "e" 10) "d" 11) "c"
目前lrem这个list中有2个b,2个c,4个d,3个e,我们正向删除2个d,负向删除2个e
127.0.0.1:6379> lrem lrem 2 d (integer) 2 127.0.0.1:6379> lrange lrem 0 -1 1) "e" 2) "b" 3) "e" 4) "d" 5) "c" 6) "b" 7) "e" 8) "d" 9) "c"
比对下发现2,3位置的d删除了
127.0.0.1:6379> lrem lrem -2 e (integer) 2 127.0.0.1:6379> lrange lrem 0 -1 1) "e" 2) "b" 3) "d" 4) "c" 5) "b" 6) "d" 7) "c"
可以看到3,7的e被删除了
关于redis的list类型的方法4.0有这么多,6.0开始多加了一些方法,大家有兴趣的可以自己去学习下
页码: 1 2