首页 / REDIS / Redis中LIST列表的相关命令
Redis中LIST列表的相关命令
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Redis中LIST列表的相关命令,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2949字,纯文字阅读大概需要5分钟。
内容图文
Redis中LIST列表的相关命令
添加
lpush
将一个或多个value
插入到key
的表头,如果存在多个value,那么各个value
按从左到右的顺序依次插入表头
插入表头:意味着新插入的值在最前列
如果list
之前不存在,则会创建一个新的list
,如果list
已存在,则追加,返回值是list
的元素数量,也可以理解位最后插入的元素的相对位置
127.0.0.1:6379> lpush list2 zhangsan lisi wangwu
(integer) 3
127.0.0.1:6379>
rpush
和lpush
功能一样,只不过是从从右往左插入(尾部)
语法:rpush key value1 value2 value3.....
rpush
插入时value
的顺序就是元素在list
中的顺序
rpushx
在指定list
的尾部插入元素,如果该list
不存在,则操作无效
127.0.0.1:6379> rpush list4 hello
(integer) 1
127.0.0.1:6379> rpushx list5 hello
(integer) 0
lpushx
和rpushx
一样,只不过是从头部插入
linsert
语法:linsert key before|alter value1 value2
在list
中的value1
元素之前或之后位置插入value2
,如果value1
不存在list
key
中,那么不执行任何操作
#在list2中的c元素之前插入一个new元素
127.0.0.1:6379> linsert list2 before c new
(integer) 7
127.0.0.1:6379> lrange list2 0 -1
1) "a"
2) "b"
3) "new"
4) "c"
5) "d"
6) "e"
7) "f"
修改
ltrim
对一个list
进行裁剪,即让列表值保留指定期间的元素,其余删除
127.0.0.1:6379> lrange list2 0 -1
1) "chenqi"
2) "zhaoliu"
3) "wangwu"
4) "lisi"
127.0.0.1:6379> ltrim list2 -2 -1
OK
127.0.0.1:6379> lrange list2 0 -1
1) "wangwu"
2) "lisi"
127.0.0.1:6379>
lset
设置指定下标位置元素的值(把原来的值修改了),如果下标不存在则报错
127.0.0.1:6379> lset list2 2 redis
OK
127.0.0.1:6379> lrange list2 0 -1
1) "a"
2) "b"
3) "redis"
4) "c"
5) "d"
6) "e"
7) "f"
删除
rpop
从list
的尾部弹出一个元素
127.0.0.1:6379> lrange list2 0 -1
1) "chenqi"
2) "zhaoliu"
3) "wangwu"
4) "lisi"
5) "zhangsan"
127.0.0.1:6379> rpop list2
"zhangsan"
127.0.0.1:6379> lrange list2 0 -1
1) "chenqi"
2) "zhaoliu"
3) "wangwu"
4) "lisi"
127.0.0.1:6379>
弹出的意思就是移除
lpop
从list
的同步弹出一个元素
语法:lpop key
blpop
和lpop
一样是弹出语句,不过是阻塞式列表弹出.
同样依次弹出list
中的元素,但是如果list
没有可供弹出的元素,那么这个操作(连接)将等待,直到list
中有可供弹出的元素或者连接等待超时直接gg
127.0.0.1:6379> blpop list2 10
1) "list2"
2) "wangwu"
127.0.0.1:6379> blpop list2 10
1) "list2"
2) "lisi"
127.0.0.1:6379> blpop list2 10
(nil)
(10.09s) #超时
注意,这个
10
代表操作超时时间,该命令返回两个结果,第一个是操作的list
的key
名称.第二个结果是弹出的具体元素
还有brpop
,brpoplpush
都是对应命令的阻塞版本
查询
lrange
返回列表key
中指定区间之内的元素,区间偏移量start
和stop
指定,下标start
和stop
都是以0开始
注意,偏移量也可以是负数,-1
表示列表的最后一个元素,-2
表示列表的倒数第二个元素
127.0.0.1:6379> lrange list2 2 4
1) "wangwu"
2) "lisi"
3) "zhangsan"
在偏移量位负数的时候,我们应该把
list
的顺序倒过来看
tip:`lrange key 0 -1`就是获取所有元素
在start
位负数时,它的起点位置从后面开始数,所以说,start
确定了值的时候,lrange
可以输出的最大范围已经决定了,不管stop
的值是什么,输出的元素范围绝对是start
开始往后的元素最大范围.
所以Redis中的range
相关命令其实最重要要看start
参数的值,stop
只是决定了尾部在哪里
在
lrange
中,stop
的值绝对不能在start
的前面
lindex
返回list
中指定下标的元素,0
是开始下标,如果下标位负数,那么顺序从后往前,-1
是开始位置也是列表中的最后元素
127.0.0.1:6379> lindex list2 -3
"zhaoliu"
127.0.0.1:6379> lindex list2 1
"zhaoliu"
考虑到下标可以负数,所以每个元素是有俩个下标代表位置
llen
返回列表的长度
语法:llen key
如果key不存在,则key被解释位一个空列表,返回0
那么,如果返回值是0,不一定是list
内部元素为空,还有可能key
不存在
特殊操作
rpoplpush
语法:rpoplpush key1 key2
从key1
中的尾部弹出一个元素并插入到key2
的头部
127.0.0.1:6379> rpush list2 a b c d e f g
(integer) 7
127.0.0.1:6379> rpoplpush list2 list3
"g"
127.0.0.1:6379> lrange list2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
127.0.0.1:6379> lrange list3 0 -1
1) "g"
127.0.0.1:6379>
原文:https://www.cnblogs.com/liangshu/p/12408407.html
内容总结
以上是互联网集市为您收集整理的Redis中LIST列表的相关命令全部内容,希望文章能够帮你解决Redis中LIST列表的相关命令所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。