LPUSH:将元素推入到列表左端
用户可以通过 LPUSH
命令,将一个或多个元素推入到给定列表的左端:
- LPUSH list item [item item ...]
在推入操作执行完毕之后,LPUSH
命令会返回列表当前包含的元素数量作为返回值。
比如以下代码就展示了如何通过 LPUSH
命令,将 "buy some milk"
、 "watch tv"
、 "finish homework"
等元素依次推入到 todo
列表的左端:
- redis> LPUSH todo "buy some milk"
- (integer) 1 -- 列表现在包含一个元素
- redis> LPUSH todo "watch tv"
- (integer) 2 -- 列表现在包含两个元素
- redis> LPUSH todo "finish homework"
- (integer) 3 -- 列表现在包含三个元素
图 4-3 展示了以上三个 LPUSH
命令的执行过程:
首先,在操作执行之前,
todo
列表为空,也即是不存在于数据库中;执行第一个
LPUSH
命令,将元素"buy some milk"
推入到列表左端;执行完第一个
LPUSH
命令的列表现在包含一个元素;执行第二个
LPUSH
命令,将元素"watch tv"
推入到列表左端;执行完第二个
LPUSH
命令的列表现在包含两个元素;执行第三个
LPUSH
命令,将元素"finish homework"
推入到列表左端;执行完第三个
LPUSH
命令的todo
列表现在包含三个元素。
图 4-3 LPUSH
命令执行过程
一次推入多个元素
LPUSH
命令允许用户一次将多个元素推入到列表左端:如果用户在执行 LPUSH
命令时给定了多个元素,那么 LPUSH
命令将按照元素给定的顺序,从左到右依次地将所有给定元素推入到列表左端。
举个例子,如果用户执行以下命令:
- redis> LPUSH another-todo "buy some milk" "watch tv" "finish homework"
- (integer) 3
那么 LPUSH
命令将按照图 4-4 所示的顺序,将三个给定元素依次推入到 another-todo
列表的左端。
图 4-4 一次推入多个元素
最终,这条 LPUSH
命令将产生图 4-5 所示的列表,它和上一小节使用三条 LPUSH
命令构建出的列表完全相同。
图 4-5 another-todo
列表及其包含的元素
其他信息
属性 | 值 |
---|---|
复杂度 | O(N),其中 N 为被推入到列表的元素数量。 |
版本要求 | LPUSH 命令从 Redis 1.0.0 版本开始可用,但是只有 Redis 2.4.0 或以上版本的 LPUSH 命令可以一次推入多个元素,Redis 2.4.0 以下版本的 LPUSH 命令每次只能推入一个元素。 |