redis数据类型 - list类型

list 类型
list 是一个链表结构,主要功能是push、pop、获取一个范围的所有值等。
操作中的key理解为链表的名字。


redis的list类型其实就是一个每个子元素都是string类型的双向链表。

链表的最大长度是 2的32次方。
我们可以通过push、pop操作从链表的头部或者尾部添加删除元素。
这使得list既可以用作栈,有可以用作队列。

lpush 在key对应的list头部添加字符串元素:
lpush mylist brother
lpush mylist lamp

lpop 从list的头部删除元素,并返回删除的元素:
lpop mylist #后放入的先弹出来

rpush 在key对应的list的尾部添加字符串元素


rpop 从右边弹出(lpush和rpop结合使用:队列从左边进右边出)

list 的尾部删除元素,并返回删除元素 


lrange 获取范围:
lrange mylist 0 2  	#获取下班从0到2的,不会被弹出
lrange mylist 0 -1	#获取整个list不会被弹出

linsert 在key对应的list的特定的位置之前或之后添加字符串元素:
lpush mylist aa
lpush mylist bb
linsert mylist before aa cc
lrange mylist 0 -1
结果如下:
1) "bb"
2) "cc"
3) "aa"

lset
设置 list 中指定下标的元素值(下标从 0 开始)与操作 php 索引数组类似
rpush mylist4 one
lset mylist4 0 two
lrange mylist4 0 -1 


lrem
key 对应 list 中删除 count 个和 value 相同的元素count>0 时,按从头到尾的顺序删除
lpush mylist5 a
lpush mylist5 b
lpush mylist5 a
lpush mylist5 a
lpush mylist5 c
lrange mylist5 0 -1
lrem mylist5 2 a

此时是c a a b a删除两个 value a 的 

lrange mylist5 0 -1

结果

1) "c"2) "b"3) "a"

count<0 时,按从尾到头的顺序删除lrem mylist5 -2 a

count=0 时,删除全部lrem mylist5 0 a 


ltrim 保留 start 至 end 之间的元素.
通常用来截取保存最新的 N 条数据。
ltrim mylist 0 2 ,表示只保留最新 3 条数据

lpush mylist6 a
lpush mylist6 b
lpush mylist6 c
lpush mylist6 d
lpush mylist6 e
lrange mylist6 0 -1
结果是
1) "e" 2) "d" 3) "c" 4) "b" 5) "a"
ltrim mylist6 1 3 lrange mylist6 0 -1
结果:
1) "d" 2) "c" 3) "b"
从下标为 1 开始,到下标为 3 范围保留,其它的删除
如果第二个参数是-1,则后面的全部保留

rpoplpush
从第一个 list 的尾部移除元素并添加到第二个 list 的头部,最后返回被移除的元素值,整个操作是原子的.如果第一个 list 是空或者不存在返回 nil
rpoplpush mylist6 mylist7

lindex
返回名称为 key list index 位置的元素
lindex mylist9 1 mylist9 中,下标为 1 的成员

llen
list 的长度

返回 key 对应 list 的长度 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值