第 3 章 列表

Redis 的列表(list)是一种线性的有序结构,可以按照元素被推入列表中的顺序来存储元素,这些元素既可以是文字数据,又可以是二进制数据,并且列表中的元素可以重复出现。

作为例子,图 4-1 展示了一个包含多个字符串的列表,这个列表按照从左到右的方式,依次存储了 "one"、"two"、"three"、"four" 这 4 个元素。

image 2025 01 02 18 45 28 058
Figure 1. 图4-1 横向表示的列表

为了展示方便,本书给出的列表图片一般都会像图4-1这样只展示列表本身而忽略列表的键名,但是在需要的时候,也会如图4-2所示,将列表及其键名一并给出。

image 2025 01 02 18 46 00 741
Figure 2. 图4-2 完整的列表键视图

Redis 为列表提供了丰富的操作命令,通过这些命令,用户可以:

  • 将新元素推入列表的左端或者右端。

  • 移除位于列表最左端或者最右端的元素。

  • 移除列表最右端的元素,然后把被移除的元素推入另一个列表的左端。

  • 获取列表包含的元素数量。

  • 获取列表在指定索引上的单个元素,或者获取列表在指定索引范围内的多个元素。

  • 为列表的指定索引设置新元素,或者把新元素添加到某个指定元素的前面或者后面。

  • 对列表进行修剪,只保留指定索引范围内的元素。

  • 从列表中移除指定元素。

  • 执行能够阻塞客户端的推入和移除操作。

本章接下来将对以上提到的各个列表操作命令进行介绍,并说明如何使用这些命令去构建各种实用的程序。