1. lpush 和 rpush
在Redis中,list(列表)是一种常用的数据结构,可以存储一组按照添加顺序排序的元素。列表的两个常用命令是lpush和rpush,它们分别用于将一个或多个元素添加到列表的左侧或右侧。
1.1 lpush
语法:lpush key value [value ...]
lpush命令将一个或多个值插入到列表头部,如果列表不存在,则会自动创建一个新的空列表:
redis> lpush mylist "world"
(integer) 1
redis> lpush mylist "hello"
(integer) 2
redis> lrange mylist 0 -1
1) "hello"
2) "world"
从上面的代码可以看出,lpush命令将"hello"和"world"从左侧添加到mylist列表中,并返回添加后列表的长度2。lrange命令用于查看列表的所有元素,0表示列表的第一个元素,-1表示最后一个元素。
1.2 rpush
语法:rpush key value [value ...]
rpush命令将一个或多个值插入到列表尾部,如果列表不存在,则会自动创建一个新的空列表:
redis> rpush mylist "world"
(integer) 3
redis> rpush mylist "hello"
(integer) 4
redis> lrange mylist 0 -1
1) "hello"
2) "world"
3) "world"
4) "hello"
从上面的代码可以看出,rpush命令将"world"和"hello"从右侧添加到mylist列表中,并返回添加后列表的长度4。
2. lset
lset命令用于修改指定位置的列表元素,如果索引位置不存在,则会抛出错误。lset命令的语法为:
lset key index value
其中,index参数表示列表某个元素的索引,value参数表示要设置的新值。
例如,在下面的代码中,我们将mylist列表的第三个元素hello改为hi:
redis> lset mylist 2 hi
OK
redis> lrange mylist 0 -1
1) "hello"
2) "world"
3) "hi"
4) "hello"
3. lrem
lrem命令用于从列表中删除指定数量的元素。其语法为:
lrem key count value
其中,count表示要删除的元素数量:
count>0时,从列表左侧开始删除count个值为value的元素;
count<0时,从列表右侧开始删除count个值为value的元素;
count=0时,删除所有值为value的元素。
例如,我们将mylist列表中所有值为hello的元素删除:
redis> lrem mylist 0 hello
(integer) 1
redis> lrange mylist 0 -1
1) "world"
2) "hi"
从上面的代码可以看出,lrem命令返回删除的元素数量,这里是1。
总结
lpush和rpush命令用于向列表中添加一个或多个元素,lset命令用于修改列表中指定位置的元素,lrem命令用于删除列表中指定数量的元素。使用这些命令可以方便地对列表进行操作。