5.3 List数据结构
5.3.1 List列表
- List列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。
- 一个列表最多可以包含232-1个元素(4294967295,每个列表超过40亿个元素)。
5.3.2 List指令
- 右侧插入
右侧插入数据命令如下:
rpush listkey c b a
从右侧插入数据即列表的尾部插入数据,插入后的结果顺序是:
c — b — a。
- 左侧插入
右侧插入数据命令如下:
lpush listkey f e d
插入后的结果顺序是:
d — e — f。
结合右侧插入和左侧插入数据的最终结果顺序:
d — e — f — c — b — a。
- 右侧弹出
右侧弹出数据的命令:
rpop listkey
指把右侧的最后一个元素移除,移除前的数据顺序为:
d — e — f — c — b — a
移除后的数据顺序为:
d — e — f — c — b
- 左侧弹出
左侧弹出数据的命令:
lpop listkey
指把左侧的最后一个元素移除,移除前的数据顺序为:
d — e — f — c — b
移除后的数据顺序为:
e — f — c — b
- 获取当前列表的长度
获取当前列表长度命令:
llen listkey
- 部分范围的获取
部分范围的获取命令为:
lrange listkey 0 2
0 —— 代表左侧第一个元素
2 —— 代表结束的元素
即获取
e — f — c — b
中的
e — f — c
三个元素。
-
获取子集
lrange listkey 1 -1
1 —— 代表左侧第2个元素
-1 —— 代表右侧末端
即获取
e — f — c — b
中的
f — c — b
三个元素。
不建议在缓存中使用大量集合。
5.3.3 List指令代码示例
输入三个元素:
rpush mylist a b c
获取元素子集合:
lrange mylist 0 -1
返回:
“a”
“b”
“c”
左侧插入一个元素:
lpush mylist 0
获取元素子集合:
lrange mylist 0 -1
返回:
“0”
“a”
“b”
“c”
右侧弹出:
rpop mylist
返回:
“c”
利用list数据结构可以帮助实现队列、堆、栈的这样一些基本特性。