redis列表系列之二

21 篇文章 0 订阅

目录

 

lrem

llen

lindex

linsert

lset 

lrange

ltrim


lrem

1.语法
lrem key count value

2.解析
根据参数count的值,移除列表中与参数value相等的元素
count的值可以是以下几种:
count>0:从表头开始向表尾搜索,移除与value相等的元素,数量为count
count<0:从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值
count=0:移除表中所有与value相等的值
3.返回值:
被移除元素的数量,因为不存在的key被视作空表,所以当key不存在时,lrem总是返回0
4.例子:

lpush milk a b a b a
lrange milk 0 4 //查看所有元素
lrem milk 2 a   //移除从表头到表尾 最先发现的两个a
llen milk
lrange milk 0 2
lrem milk -1 a //移除从表尾到表头第一个a
llen milk
lrange milk 0 1
lrem milk 0 b
llen milk

llen

1.语法
llen key

2.解析
返回列表key的长度
如果key不存在,则key被解释为一个空列表,返回0
如果key不是列表类型,返回一个错误
3.返回值:
列表key的长度。
4.例子:

#空列表
llen milk
#非空列表
lpush milk hello
lpush milk world
llen milk

 

lindex

1.语法
lindex key index

2.解析
下标参数start和stop都以0为底,也就是说,以0表示列表第一个元素,以此类推
也可以使用负数,比如-1 -2
如果key不是列表类型的,返回一个错误
3.返回值:
列表中下标为index的元素,如果index参数的值不在列表的物件范围内,返回nil
4.例子:

lpush milk hello
lpush milk world
lindex milk 0
lindex milk -1
lindex milk 3


linsert

1.语法
linsert key before|after pivot value

2.解析
将值value插入到列表key当中,位于值pivot之前或之后
当pivot不存在于列表key时,不执行任何操作.
当key不存在时,key被视为空列表,不执行任何操作。
如果key不是列表的话,返回一个错误
3.返回值:
如果命令执行成功的话,返回插入操作完成之后,列表的长度。如果没有找到pivot,返回-1
如果key不存在或为空列表,返回0
4.例子:

rpush milk hello
rpush milk world
linsert milk before world jack
lrange milk  0 -1
#对一个非空列表插入,查找一个不存在的pivot
linsert milk before go lang
#对一个空列表执行linsert命令
exists apple
linsert apple before go lang


lset 

1.语法
lset key index value

2.解析
将列表key下标为index的元素的值设置为value
当index参数超出范围,或对一个空列表进行lset,返回一个错误
3.返回值:
操作成功返回ok,否则返回错误信息
4.例子:
#对空列表进行lset
exists apple
lset apple 0 jack
#对非空列表进行lset
lpush milk hello
lrange milk 0 0
lset milk 0 world
lrange milk 0 0 
#index超出范围
llen milk
lset milk 2 how


lrange

1.语法
lrange key start stop

2.解析
返回列表key中指定区间内的元素,区间以偏移量start和stop指定
下标参数start和stop都以0为底,也就是说,以0表示列表的第一个元素,以此类推
也可以使用负数。
超出范围的下标
超出范围的下标志不会引起错误
如果start下标比列表的最大下标end还要大,那么lrange返回一个空的列表
如果stop下标比end下标大,redis将stop的值设置为end
3.返回值:
一个列表,包含指定区间内的元素
4.例子:

rpush milk hello
lrange milk 0 0
rpush milk world
lrange milk 0 1


ltrim

1.语法
ltrim key start stop

2.解析
对一个列表进行修剪,就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
ltrim命令通常和lpush命令或者rpush命令配合使用
3.返回值:
命令执行成功,返回OK
4.例子:

#start和stop都在列表的索引范围内
lrange milk 0 -1
ltrim milk 1 -1 //删除索引之外值
lrange milk 0 -1
#stop比列表的最大下标还要大
ltrim milk 1 10010  //保留1-10010区间的元素值
lrange milk 0 -1
#start 和stop都比列表最大的下标要大,并且start<stop
ltrim  milk 1000 2000
lrange milk 0 -1
#start和stop都比列表的最大下标要大,并且start>stop
rpush milk a b c d e 
lrange milk 0 -1
ltrim milk 2000 1000
lrange milk 0 -1

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值