Redis中存取List类型
List为列表,根据不同的数据结构,可以为栈,队列,链表等。
但redis中的list功能结合了这些数据结构的各个优点,真的强大。
(1)左插入:lpush key value
右插入:rpush key value
如果key列表不存在,push前会创建一个空的列表。
返回值:push后列表的长度。
参考步骤(2)
(2)取出列表指定下标的值:lrange key start stop
注意:下标支持负数。
即:1先从左边进去,2再从左边进去,3再从右边进去,4再从右边进去。
(3)左移除:lpop key
右移除:rpop key
返回值:返回移除的那个元素
(4)获取列表中指定下标的值:lindex key index
当key不是list时,返回error。
(5)获取列表的长度:Llen key
如果key不存在,看成空列表,返回0。
如果key不是list,返回error。
(6)移除多个列表元素:Lrem key count value
当count>0时,例如count=2时,表示从list左边开始,移除2个value值。
当count<0时,例如count=-3时,表示从list右边开始,移除3个value值。
当count=0时,删除list中所有为value的值。
(7)修剪列表元素:Ltrim key start stop
从列表两端直接剪断。留下start-stop中间段。
原来的list结构被改变了。
(8)A队列元素移除,并放入B队列:RpopLpush list1 list2
返回值:返回移除和放入的那个元素。
如果两列表为同一列表名,效果为队列最右边一个元素移到最左边,即列表自己旋转。
(9)修改列表指定下标的值:Lset key index value
如果list不存在,或者index越界,返回error。
(10)元素插入到列表指定值的前面或者后面:Linsert key before/after pivot value
当列表中参照物存在多个值,list是从左边(头部)开始寻找的。
当key列表不存在时,操作无效。当key存在,但不是list时,返回错误。
返回值:插入成功时,返回list长度。当参照物pivot值不存在时,返回-1。
命令小结:
增:
- Lpush key value,Rpush key value
- Linsert key before/after pivot value
删:
- Lpop key,Rpop key
- Lrem key count value
- Ltrim key strat stop
查:
- Lindex key index
- Lrange key start stop
- Llen key
改:
- Lset key index value
其他:
- RpopLpush source dest