Redis学习-3.3:List列表详解
2017-11-08 09:27
197 查看
存储List
1:ArrayList使用数组方式
2:使用LinkList双向连接方式
3:双向链表中增加数据
4:双向链表中删除数据
常用命令:
1:两端添加
lpush mylist a b c
向mylist左端添加a、b、c三个值
虽然说我们没有mylist但是系统会帮我们自动创建
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103432203030074.png)
之后我们又向左侧添加了1、2、3
现在我们的list应该是 321cba
之后我们再向右侧添加
rpush mylist 7 8 9
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103442953034443.png)
现在我们的list里的数据是321cba789
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103453992009423.png)
2:查看列表
lrange mylist start end(end如果为-1则代表链表尾部的元素,-2则代表倒数第二个)
3:两端弹出
lpop mylist 弹出最左面的元素
rpop mylist 弹出最右面的元素
如果不存在返回nil
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103469939009443.png)
弹出时返回的是被弹出的元素
如果list中的元素都被弹出则该list也会被系统清除
4:获取列表元素个数
llen mylist
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103479631066765.png)
如果没有该list则返回长度0
5:拓展命令
lpushx mylist aaa 这个就是向list头部插入一个值,如果该list不存在,则不进行插入
rpushx mylist bbb相同道理
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103493050021887.png)
我没有mylist3所以返回list长度为0
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103501722084130.png)
lrem mylist count(这个是数字) value(值)
删除mylist中值为value的数据count个
如果
count>0,从前往后遍历删除count个
count<0,从后面向前面遍历删除-count个
count=0,删除所有value的值
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103513485075345.png)
我们从头到尾删除两个 a
lrem mylist 2 a
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103524047082389.png)
之后我们发现5) 6)没了
之后我们在从尾到头删除2个a
lrem mylist -2 a
这时应该18) 14)位置的a消失,我们试验下
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103533482019740.png)
这时我们要删除所有的a
lrem mylist 0 a
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103542512098526.png)
成功
我们可以操作链表的角标
在某一个位置添加元素 lset mylist 3 wsy
在3的位置上添加wsy(和java一样,角标从0开始)
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103554010061284.png)
linsert mylist4 before b 11
在值b之前插入11
linsert mylist4 after b 11
在值b之后插入11
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103565618079567.png)
(不要理会那个rinert - -!)
rpoplpush mylist4 mylist:将链表mylist4中尾部数据弹出,再添加在mylist链表头部
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103579478013781.png)
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103587596098591.png)
这个命令个可以进行消息队列的处理
1:ArrayList使用数组方式
2:使用LinkList双向连接方式
3:双向链表中增加数据
4:双向链表中删除数据
常用命令:
1:两端添加
lpush mylist a b c
向mylist左端添加a、b、c三个值
虽然说我们没有mylist但是系统会帮我们自动创建
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103432203030074.png)
之后我们又向左侧添加了1、2、3
现在我们的list应该是 321cba
之后我们再向右侧添加
rpush mylist 7 8 9
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103442953034443.png)
现在我们的list里的数据是321cba789
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103453992009423.png)
2:查看列表
lrange mylist start end(end如果为-1则代表链表尾部的元素,-2则代表倒数第二个)
3:两端弹出
lpop mylist 弹出最左面的元素
rpop mylist 弹出最右面的元素
如果不存在返回nil
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103469939009443.png)
弹出时返回的是被弹出的元素
如果list中的元素都被弹出则该list也会被系统清除
4:获取列表元素个数
llen mylist
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103479631066765.png)
如果没有该list则返回长度0
5:拓展命令
lpushx mylist aaa 这个就是向list头部插入一个值,如果该list不存在,则不进行插入
rpushx mylist bbb相同道理
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103493050021887.png)
我没有mylist3所以返回list长度为0
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103501722084130.png)
lrem mylist count(这个是数字) value(值)
删除mylist中值为value的数据count个
如果
count>0,从前往后遍历删除count个
count<0,从后面向前面遍历删除-count个
count=0,删除所有value的值
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103513485075345.png)
我们从头到尾删除两个 a
lrem mylist 2 a
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103524047082389.png)
之后我们发现5) 6)没了
之后我们在从尾到头删除2个a
lrem mylist -2 a
这时应该18) 14)位置的a消失,我们试验下
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103533482019740.png)
这时我们要删除所有的a
lrem mylist 0 a
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103542512098526.png)
成功
我们可以操作链表的角标
在某一个位置添加元素 lset mylist 3 wsy
在3的位置上添加wsy(和java一样,角标从0开始)
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103554010061284.png)
linsert mylist4 before b 11
在值b之前插入11
linsert mylist4 after b 11
在值b之后插入11
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103565618079567.png)
(不要理会那个rinert - -!)
rpoplpush mylist4 mylist:将链表mylist4中尾部数据弹出,再添加在mylist链表头部
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103579478013781.png)
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103587596098591.png)
这个命令个可以进行消息队列的处理
![](http://www.yumomode.cc/assets//ueditor/jsp/upload/image/20171108/1510103597222073148.png)
相关文章推荐
- python学习笔记(二)列表(List)操作方法详解
- Redis学习笔记(二)--list结构及命令详解
- Redis学习3--列表键List
- 结合redis设计与实现的redis源码学习-8.3-t_list.c(列表键)
- Python语言学习讲解五:列表(List)操作方法详解
- Redis学习05——存储字符串列表(list)
- python3 操作 redis List(列表) 实例 详解
- 【Redis学习】:list数据类型详解
- python学习笔记之列表(list)与元组(tuple)详解
- Redis命令学习—List(列表)
- Redis学习笔记之Redis列表List(六)
- redis命令参考(三) List列表相关
- Python学习之列表(list)
- redis详解-(4)列表
- Redis 列表(List)
- dede列表分页问题解决Pagelist标签详解
- redis学习(3)redis.conf配置文件详解
- Python学习笔记(8)-列表List、元组Tuple
- 分类列表(wp_list_categories())函数用法详解
- Python学习入门基础教程(learning Python)--3.3 分支语句的条件表达式详解 .