第三节:列表数据结构

数据结构之list列表

一、特点

key             value
day    [day7,day6,day5,day4,day3,day2,day1]
        0     1     2   3    4    5    6
                                      -1

反向列表, 最新的值在最前⾯, 列表会⾃动给列表对象值加索引

二、应用场景

微信朋友圈 即时消息展示

三、使用

1、LPUSH:从左边插入数据

127.0.0.1:6379> LPUSH people xiaowu
1
127.0.0.1:6379> LPUSH people man 22 shanghai
4

LRANGE:查看数据内容

127.0.0.1:6379> LRANGE people 0 -1   # 查看第0个到最后一个数据
shanghai
22
man
xiaowu
127.0.0.1:6379> LRANGE people 0 2    # 查看第0个到第二个数据
shanghai
22
man

3、RPUSH:从右侧插入数据

127.0.0.1:6379> LRANGE people 0 -1
shanghai
22
man
xiaowu
127.0.0.1:6379> RPUSH people linyi
5
127.0.0.1:6379> LRANGE people 0 -1
shanghai
22
man
xiaowu
linyi

4、两侧插入数据

1.LPUSHX:key存在时在左侧添加键值

key存在

127.0.0.1:6379> LRANGE people 0 -1
shanghai
22
man
xiaowu
linyi
127.0.0.1:6379> LPUSHX people 1
6
127.0.0.1:6379> LRANGE people 0 -1
1
shanghai
22
man
xiaowu
linyi

key不存在

127.0.0.1:6379> LRANGE test 0 -1

127.0.0.1:6379> LPUSHX test 1
0
127.0.0.1:6379> LRANGE test 0 -1

127.0.0.1:6379> 

2.RPUSHX:key存在时右侧添加键值

key存在

127.0.0.1:6379> LRANGE people 0 -1
1
shanghai
22
man
xiaowu
linyi
127.0.0.1:6379> RPUSHX people linux
7
127.0.0.1:6379> LRANGE people 0 -1
1
shanghai
22
man
xiaowu
linyi
linux
127.0.0.1:6379> 

key不存在

127.0.0.1:6379> LRANGE test 0 -1

127.0.0.1:6379> RPUSHX test aaa
0
127.0.0.1:6379> LRANGE test 0 -1

127.0.0.1:6379> 

5、键值中间加入值

1.LINSERT key before:在指定键值前添加新键值

127.0.0.1:6379> LRANGE people 0 -1
1
shanghai
22
man
xiaowu
linyi
linux
127.0.0.1:6379> LINSERT people before 22 666
8
127.0.0.1:6379> LRANGE people 0 -1
1
shanghai
666
22
man
xiaowu
linyi
linux
127.0.0.1:6379> 

2.LINSERT key after:在指定键值前添加新键值

127.0.0.1:6379> LRANGE people 0 -1
1
shanghai
666
22
man
xiaowu
linyi
linux
127.0.0.1:6379> LINSERT people after 22 aaa
9
127.0.0.1:6379> LRANGE people 0 -1
1
shanghai
666
22
aaa
man
xiaowu
linyi
linux
127.0.0.1:6379> 

6、修改数据

1)LSET:根据下标修改

127.0.0.1:6379> LRANGE people 0 -1
1
shanghai
666
22
aaa
man
xiaowu
linyi
linux
127.0.0.1:6379> LSET people 1 qingpu
OK
127.0.0.1:6379> LRANGE people 0 -1
1
qingpu
666
22
aaa
man
xiaowu
linyi
linux
127.0.0.1:6379> 

2)LTRIM:根据下标截取(左右都包含)

127.0.0.1:6379> LRANGE people 0 -1
1
qingpu
666
22
aaa
man
xiaowu
linyi
linux
127.0.0.1:6379> LTRIM people 1 -2
OK
127.0.0.1:6379> LRANGE people 0 -1
qingpu
666
22
aaa
man
xiaowu
linyi
127.0.0.1:6379> 

7、查询数据

1.LLEN:查看列表中元素的个数

127.0.0.1:6379> LRANGE people 0 -1
qingpu
666
22
aaa
man
xiaowu
linyi
127.0.0.1:6379> LLEN people
7

2.LRANGE:根据起止下标查看元素

127.0.0.1:6379> LRANGE people 0 -1
qingpu
666
22
aaa
man
xiaowu
linyi
127.0.0.1:6379> LRANGE people -1 -1      #查看最右边的元素
linyi
127.0.0.1:6379> LRANGE people 0 0        #查看最左边的元素
qingpu
127.0.0.1:6379> 

3.LINDEX:根据指定下标查找数据

127.0.0.1:6379> LRANGE people 0 -1
666
22
aaa
man
xiaowu
linyi
127.0.0.1:6379> LINDEX people 3
man
127.0.0.1:6379> 

4.BLPOP:实时查询列表最左数据

查询列表最左数据,后面需要设置数据等待时间。如果列表有数据直接返回最左数据。如果没有数据,等待指定时间,指定时间内有新数据插入则返回最新数据,如果没有数据。时间超时后退出。

127.0.0.1:6379> BLPOP people 10
people
qingpu
127.0.0.1:6379> 

8、数据消费

1.LPOP:从左侧消费数据,消费后删除

联系管理员微信tutu19192010,注册账号

上一篇
下一篇
Copyright © 2022 Egon的技术星球 egonlin.com 版权所有 帮助IT小伙伴学到真正的技术