RPUSH:将元素推入列表右端
RPUSH
命令和 LPUSH
命令类似,这两个命令执行的都是元素推入操作,唯一区别就在于 LPUSH
命令会将元素推入列表左端,而 RPUSH
命令会将元素推入列表右端:
RPUSH list item [item item ...]
在推入操作执行完毕之后,RPUSH 命令会返回列表当前包含的元素数量作为返回值。
举个例子,以下代码展示了如何通过 RPUSH 命令将 "buy some milk"、"watch tv"、"finish homework" 等元素依次推入 todo 列表的右端:
redis> RPUSH todo "buy some milk"
(integer) 1 -- 列表现在包含1个元素
redis> RPUSH todo "watch tv"
(integer) 2 -- 列表现在包含2个元素
redis> RPUSH todo "finish homework"
(integer) 3 -- 列表现在包含3个元素
图 4-6 展示了以上 3 个 RPUSH 命令的执行过程:
-
在操作执行之前,todo 列表为空,即不存在于数据库中。
-
执行第 1 个 RPUSH 命令,将元素 "buy some milk" 推入列表右端。
-
执行完第 1 个 RPUSH 命令的列表现在包含一个元素。
-
执行第 2 个 RPUSH 命令,将元素 "watch tv" 推入列表右端。
-
执行完第 2 个 RPUSH 命令的列表现在包含两个元素。
-
执行第 3 个 RPUSH 命令,将元素 "finish homework" 推入列表右端。
-
执行完第 3 个 RPUSH 命令的 todo 列表现在包含 3 个元素。
一次推入多个元素
与 LPUSH 命令一样,RPUSH 命令也允许用户一次推入多个元素:如果用户在执行 RPUSH 命令时给定了多个元素,那么 RPUSH 命令将按照元素给定的顺序,从左到右依次将所有给定元素推入列表右端。

Figure 1. 图4-6 RPUSH命令执行过程
举个例子,如果用户执行以下命令:
redis> RPUSH another-todo "buy some milk" "watch tv" "finish homework"
(integer) 3
那么 RPUSH 命令将按照图 4-7 展示的顺序,将 3 个给定元素依次推入 another-todo 列表的右端。

Figure 2. 图4-7 一次推入多个元素
最终,这条 RPUSH
命令将产生图 4-8 所示的列表,这个列表与前面使用 3 条 RPUSH
命令构建出的列表完全相同。

Figure 3. 图4-8 another-todo列表及其包含的元素