首页

5.3列表的创建、查询和修改

关灯 护眼    字体:

上一章 章节列表 下一页


列表(Lists)是Redis中的另一种基本数据结构。

列表就像是一根平放的水管:可以从左边往里塞入数据,也可以从右边往里塞入数据;可以从左边读取数据,也可以从右边读取数据。

Redis中的列表,与Python的列表在行为上有不少相似之处,可以对比着学习。列表有17条不同的操作命令,本书将会介绍其中的7条常用命令。



5.3.1 使用redis-cli实现


1.插入数据

列表分左右两个方向,所以可以从左右两侧插入。“插入(Insert)”可以理解为“推入(Push)”。又由于“左(Left)”的首字母为“L”,“右(Right)”的首字母为“R”,所以,从列表左侧插入数据的命令为“LPush”,从列表右侧插入数据的命令为“RPush”。

Redis的命令是不区分大小写的,所以一般用小写“lpush”和“rpush”便于辨认。

向列表中插入数据的命令为:

lpush key value1 value2 value3

rpush key value1 value2 value3

其中,Key的命名要求与字符串一样,可以是数字、字母下划线和中文,但不建议使用中文。

Value可以有1个或者多个。如有多个value,应使用空格将它们隔开。如果一个value内部本身就有空格,那么就使用引号包起来。

(1)从列表左侧插入数据,代码实例如下:

lpush example_list hello

lpush example_list how are you

lpush example_list "are you ok?" fine thank you

用“lpush”插入数据的流程如图5-28所示。

图5-28 lpush示意图

(2)用“rpush”插入数据的写法与“lpush”完全相同:

用“rpush”插入数据的流程如图5-29所示。

图5-29 rpush示意图

列表可以同时从左边和右边插入数据,见下方代码:

lpush example_left_right 123

rpush example_left_right 456

lpush example_left_right 789

添加完数据后,Redis当前Key的结构如图5-30所示。

图5-30 添加3个列表后的Key

列表里可以有成千上万上百万的数据,所以,使用列表控制 Key 的规模是一种比较好的选择。

2.查看数据

(1)查看列表的长度。

由于一个列表里面可以存放非常多的数据,因此,可以使用命令“llen”来查看列表的长度。命令格式为:

llen key

运行效果如图5-31所示。

图5-31 查看列表里面有多少个数据

(2)根据索引查看数据。

与Python的列表一样,Redis的列表也是有“索引”的。可以使用命令“lrange”来根据索引查看数据。

索引从最左边开始编号,从0到“列表长度-1”。例如,左边第1个数据索引为0,第2个数据索引为1……第7个元素的索引为6,第8个元素的索引为7。

根据索引查看数据的命令格式为:

lrange 0 开始索引 结束索引

例如,查看索引为6的数据:

lrange example_list 6 6

查看索引从2(包括2)到5(包括5)的数据:

lrange example_list 2 5

运行效果如图5-32所示。

图5-32 使用索引查看列表数据

(3)查看列表的所有数据。

Redis的列表也支持“负索引”,索引“-1”表示最右边的数据,“-2”表示右数第2个数据,以此类推。

因此,如果要查看列表的所有数据,可以使用命令:

lrange key 0 -1

运行效果如图5-33所示。

图5-33 查看列表所有数据

提示:

由于一个列表可以储存几百万条数据,所以,绝对不要冒然列出一个列表里面的所有数据,否则可能导致大量数据输出而瞬间耗尽系统的I/O资源。

应该是:先查看列表的长度,如确定数据量很小,则列出所有的值;如果数据量很大,则可以使用索引查看头几条数据与末尾几条数据。

查看列表的右边5条数据:

lrange key -5 -1

(4)弹出数据。

除了读取数据外,还能从列表里面“弹出(Pop)”数据,弹出也分为左右两个方向。从左边弹出数据使用的命令为“lpop”,从右边弹出数据使用的命令为“rpop”。命令格式为:

lpop key

rpop key

需要注意的是,在弹出数据的同时,被弹出的这个数据也会被从列表中删除,如图5-34所示。

从图5-34可以看出,列表“example_list”原有8条数据,首先从左侧弹出“you”,列表还剩7条数据,再从右侧弹出“hello”,最后列表还剩6条数据。

图5-34 从列表的左右侧弹出数据

3.修改数据

Redis的列表,可以根据数据的索引修改数据,使用的命令是“lset”,命令格式为:

lset key index 新的值

运行效果如图5-35所示。

图5-35 使用lset修改列表里面的数据



5.3.2 使用Python实现

m.qiduwx.com提示您,本章没有阅读完,点击下一页进入下一页阅读!

上一章 章节列表 下一页