Redis学习笔记(十一)--Redis常用操作指令(二)

List列表常用指令

list是单值多value的数据结构
lpush key value [value]

这里的l是left的意思,将一个或多个值 value 插入到列表 key 的表头,如果有多个值,则从左到右依次插入到表头,例如插入 1 2 3,则存储结构是 3 2 1(表头到表尾)
这里写图片描述

rpush key value [value]

这里的r是right的意思,将一个或多个值 value 插入到列表 key 的表头,如果有多个值,则从右到左依次插入到表头,例如插入 1 2 3,则存储结构是 1 2 3(表头到表尾)

lrange key start stop

根据开始下标和结束下标获取list内容,0 -1获取全部,接下来我们查看一下mylist 和mylist01
这里写图片描述
这里写图片描述
可以看到lpush确实是正进反出,而rpush则是怎么进怎么出

lpop key

lpop是出栈操作,删除栈顶的元素,mylist和mylist01的栈顶元素分别是5 和 1,我们验证一下
这里写图片描述
确实是这样

rpop key

rpop也是出栈操作,不过他是删除栈尾的元素,mylist和mylist01的栈尾分别是1和5,验证
这里写图片描述

lindex key

这里的l是list的简写,不要与lpush和lpop的l搞混,按照索引下标获得元素(从上到下)
经过我们前面的操作,mylist = [4,3,2],mylist01 = [2,3,4],使用lindex获取下标为0的元素
这里写图片描述

llen

获取列表的长度
这里写图片描述

lrem key count value

rem是remove的简写,移除列表中多个相同的值,比如,再定义一个mylist02 = [1 1 1 1 2 2 2 3 3 3]
删除2 个 1
这里写图片描述
可以看到修改后的列表已经删除了两个1

ltrim key start stop

获取指定范围的值后再赋值给key,比如当前的mylist02 = [1 1 2 2 2 3 3 3 ]
这里写图片描述
注意这里截取的范围是左右包含的

rpoplpush 源列表 目的列表

移除源列表的栈尾元素,添加到目的列表的栈顶(表头),例如目前mylist01 = [2 3 4],mylist02 = [ 2 2 2 3],我们把mylist01当做源列表,mylist02当做目的列表,经过rpoplpush之后,结果如下
这里写图片描述
确实是把4这个元素插入到了mylist02的栈顶

lset key index value

修改列表中指定下标的值
这里写图片描述

linsert key before value1 value2

在给定列表指定的值之前插入值
这里写图片描述

linsert key after value1 value2

在给定列表指定的值后面插入值
这里写图片描述

性能总结

1、Redis列表是一个字符串链表,left,right都可以插入添加
2、如果键不存在,创建新的链表
3、如果键已经存在,新增内容
4、如果值全部移除,对应的键也就消失了
5、链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就不是很高了

猜你喜欢

转载自blog.csdn.net/qq_14908027/article/details/79118637