马丁传奇

导航

Redis的List链表类型命令

      List是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作中key理解为链表的名字。list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列。

      链表类似于数组,元素有索引值,从左->右依次为:第0 1 2 3 4...个元素;可以按索引(下标)值进行读取(lindex)、更新(lset)链表的元素值,如下图:
     

  List链表类型
从左端压入元素 >lpush mylist1 hello
从左压入一个值

>
lpush mylist1 zhangsan lisi
从左一次压入多个元素
返回:返回压入元素后的元素总数
从右端压入元素 >rpush mylist2 a b c 3 4 e
从右一次压入多个元素
返回:返回压入元素后的元素总数
在特定位置前或后插入1个元素 >linsert mylist1 before h xyz
对mylist1链表,在“h”的前面(左边)插入“xyz”

>
linsert mylist1 after f qq
对mylist1链表,在“f”的后边(右边)插入“qq”

返回:返回压入元素后的元素总数
注:每次只能插入1个元素,“前左 后右”
按索引顺序重置元素值 >lset mylist2 0 PHP
将mylist2链表,第0个元素(首个元素)值重置为“PHP”
返回:成功返回OK
注:索引下标类似数组,从左->右依次为:第0 1 2 3 4...个元素;每次重置一个元素
   
删除指定值的元素 >lrem mylist1 2 PPP
n>0表示从 左->右 顺序,删除最先遇到2个值为“PPP”的元素

>
lrem mylist1 -2 PPP
n<0表示从 左<-右 顺序,删除最先遇到2个值为“PPP”的元素

>
lrem mylist2 0 PPP
n=0表示删除全部值为“PPP”的元素

返回:返回实际删除的元素个数
保留指定范围内的数据
(范围外的删除)
>ltrim mylist2 1 -2
保留n1=1 n2=-2范围内的值
注:第一个偏移从首0计数(需n1>=0),第二个偏移正负均可(首、尾偏移值均为-1);
从左侧弹出(删除)一个元素 >lpop mylist1
从左侧弹出1个元素
返回:返回被弹出的元素值
从右侧弹出(删除)一个元素 >rpop mylist1
从右侧弹出1个元素
返回:返回被弹出的元素值
从第一个链表右侧弹出一个元素
并将此元素压入到第二个链表的左侧
>rpoplpush mylist1 mylist2
从mylist1右弹出一个元素,并压入到mylist2左侧
(mylist1 -> mylist2)
返回:返回被弹出压入的元素
   
部分获取list链表元素值 >lrange mylist1 0 -1  获取全部元素
>lrange mylist1 2 4   部分获取元素
注:第一个偏移从首0计数(需n1>=0),第二个偏移正负均可(首、尾偏移值均为-1);
按索引顺序获取元素值 >lindex mylist1 0 获取第0个元素
返回:返回获取的元素值
注:索引下标类似数组,从左->右依次为:第0 1 2 3 4...个元素;
获取链表长度(元素总数) >llen mylist1
查看mylist1链表长度
返回:返回元素总个数
   

posted on 2013-10-30 16:14  马丁传奇  阅读(606)  评论(0编辑  收藏  举报