您的位置:首页 > 数据库 > Redis

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但是系统会帮我们自动创建



之后我们又向左侧添加了1、2、3

现在我们的list应该是  321cba

之后我们再向右侧添加

rpush mylist 7 8 9



现在我们的list里的数据是321cba789



2:查看列表

lrange mylist start end(end如果为-1则代表链表尾部的元素,-2则代表倒数第二个)

3:两端弹出

lpop mylist 弹出最左面的元素

rpop mylist 弹出最右面的元素

如果不存在返回nil



弹出时返回的是被弹出的元素

如果list中的元素都被弹出则该list也会被系统清除

4:获取列表元素个数

llen mylist



如果没有该list则返回长度0

5:拓展命令

lpushx mylist aaa 这个就是向list头部插入一个值,如果该list不存在,则不进行插入

rpushx mylist bbb相同道理



我没有mylist3所以返回list长度为0



lrem mylist count(这个是数字) value(值)

删除mylist中值为value的数据count个

如果

count>0,从前往后遍历删除count个

count<0,从后面向前面遍历删除-count个

count=0,删除所有value的值



我们从头到尾删除两个 a

lrem mylist 2 a



之后我们发现5) 6)没了

之后我们在从尾到头删除2个a

lrem mylist -2 a

这时应该18) 14)位置的a消失,我们试验下



这时我们要删除所有的a

lrem mylist 0 a



成功

我们可以操作链表的角标

在某一个位置添加元素 lset mylist 3 wsy

在3的位置上添加wsy(和java一样,角标从0开始)



linsert mylist4 before b 11

在值b之前插入11

linsert mylist4 after b 11

在值b之后插入11



(不要理会那个rinert - -!)

rpoplpush mylist4 mylist:将链表mylist4中尾部数据弹出,再添加在mylist链表头部





这个命令个可以进行消息队列的处理

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: