首页 / REDIS / Redis List列表类型详解
Redis List列表类型详解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Redis List列表类型详解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3353字,纯文字阅读大概需要5分钟。
内容图文
![Redis List列表类型详解](/upload/InfoBanner/zyjiaocheng/864/96c8f1f201a94b97a9f7d57991f7f0f3.jpg)
List 是基本的数据类型,列表。redis命令不区分大小写。
在redis中,可以把List用作 栈、队列、阻塞队列。
所有的list命令都是以“l”开头的
1.向List插入数值
127.0.0.1:6379> lpush list one (integer) 1 127.0.0.1:6379> lpush list two (integer) 2 127.0.0.1:6379> lpush list three (integer) 3 127.0.0.1:6379>
2.获取List全部的值
127.0.0.1:6379> lrange list 0 -1 1) "three" 2) "two" 3) "one" 127.0.0.1:6379>
3.利用lrange key start stop 获取List指定区域的值
127.0.0.1:6379> lrange list 0 1 1) "three" 2) "two" 127.0.0.1:6379>
4.利用rpush插入列表右侧(尾部)数值
127.0.0.1:6379> rpush list righr (integer) 4 127.0.0.1:6379> lrange list 0 -1 1) "three" 2) "two" 3) "one" 4) "righr" 127.0.0.1:6379>
5.利用lpop移除第一个(左边)数值
127.0.0.1:6379> lrange list 0 -1 1) "three" 2) "two" 3) "one" 4) "righr" 127.0.0.1:6379> lpop list "three" 127.0.0.1:6379>
6.利用rpop移除最后一个(右边)数值
127.0.0.1:6379> lrange list 0 -1 1) "three" 2) "two" 3) "one" 4) "righr" 127.0.0.1:6379> lpop list "three" 127.0.0.1:6379> rpop list "righr" 127.0.0.1:6379>
7.利用lindex命令下标获取list中的某一个值
127.0.0.1:6379> lindex list 1 "one" 127.0.0.1:6379> lindex list 0 "two" 127.0.0.1:6379>
8.利用Llen命令返回列表长度
127.0.0.1:6379> llen list (integer) 2
9.利用Lrem key count value 移除指定的值
127.0.0.1:6379> lrange list 0 -1 1) "three" 2) "three" 3) "two" 4) "one" 127.0.0.1:6379> lrem list 1 one (integer) 1 127.0.0.1:6379> lrange list 0 -1 1) "three" 2) "three" 3) "two"
10.利用ltrim key start stop 命令修剪列表数据
通过下标截取指定的长度,这个list已经被改变了,截取了只剩下截取的元素。
127.0.0.1:6379> lpush mylist "hello" (integer) 1 127.0.0.1:6379> lpush mylist "hello1" (integer) 2 127.0.0.1:6379> lpush mylist "hello2" (integer) 3 127.0.0.1:6379> lpush mylist "hello3" (integer) 4 127.0.0.1:6379> ltrim mylist 1 2 OK 127.0.0.1:6379> lrange mylist 0 -1 1) "hello2" 2) "hello1"
11.利用rpoplpush移动列表的最后一个元素,将他移动到新的列表中。
127.0.0.1:6379> rpush mylist "hello" (integer) 1 127.0.0.1:6379> rpush mylist "hello1" (integer) 2 127.0.0.1:6379> rpush mylist "hello2" (integer) 3 127.0.0.1:6379> lrange mylist 0 -1 1) "hello" 2) "hello1" 3) "hello2" 127.0.0.1:6379> rpoplpush mylist myotherlist "hello2" 127.0.0.1:6379> lrange mylist 0 -1 1) "hello" 2) "hello1" 127.0.0.1:6379> lrange myotherlist 0 -1 1) "hello2"
12.利用exists key 判断列表是否存在
127.0.0.1:6379> exists mylist
(integer) 1
127.0.0.1:6379>
13.利用lset key index value将列表中指定下标的值替换为另一个值,更新操作。如果key不存在,则会报错。
127.0.0.1:6379> lpush list value1 (integer) 1 127.0.0.1:6379> lrange list 0 -1 1) "value1" 127.0.0.1:6379> lset list 0 item OK 127.0.0.1:6379> lrange list 0 -1 1) "item" 127.0.0.1:6379>
14.利用 linsert key before|after pivot value 将某个具体值插入到列表中指定值前面或后面。
127.0.0.1:6379> rpush mylist hell0 (integer) 1 127.0.0.1:6379> rpush mylist world (integer) 2 127.0.0.1:6379> linsert mylist before world other (integer) 3 127.0.0.1:6379> lrange mylist 0 -1 1) "hell0" 2) "other" 3) "world" 127.0.0.1:6379>
List小结:
- 它实际上是一个链表,before node after ,left,right都可以插入值
- 如果key不存在,创建新的链表
- 如果key存在,新增内容
- 如果移除了所有值,则变成了空链表,也代表不存在
- 在两边插入或者改动值,效率最高!中间元素相对来说效率会低一点
使用场景:
消息排队
消息队列 (Lpush Rpop 左进右出)
栈 (Lpush Lpop 左进左出)
内容总结
以上是互联网集市为您收集整理的Redis List列表类型详解全部内容,希望文章能够帮你解决Redis List列表类型详解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。