1. 一些常用的列表命令
命令 | 用例和描述 |
RPUSH | RPUSH key- name value [value ...]—— 将 一个 或 多个 值 推入 列表 的 右端 |
LPUSH | LPUSH key- name value [value ...]—— 将 一个 或 多个 值 推入 列表 的 左端 |
RPOP | RPOP key- name—— 移 除 并 返回 列表 最 右端 的 元素 |
LPOP | LPOP key- name—— 移 除 并 返回 列表 最 左端 的 元素 |
LINDEX | LINDEX key- name offset—— 返回 列表 中 偏移量 为 offset 的 元素 |
LRANGE | LRANGE key- name start end—— 返回 列表 从 start 偏移量 到 end 偏移量 范围内 的 所有 元素, 其中 偏移量 为 start 和 偏移量 为 end 的 元素 也会 包含 在被 返回 的 元素 之内 |
LTRIM | LTRIM key- name start end—— 对列 表 进行 修剪, 只 保留 从 start 偏移量 到 end 偏移量 范围内 的 元素, 其中 偏移量 为 start 和 偏移量 为 end 的 元素 也会 被 保留 |
2. 阻塞式的列表弹出命令以及在列表之间移动元素的命令
以下命令可以将元素从一个列表移动到另一个列表,或者阻塞( block)执行命令的客户端直到有其他客户端给列表添加元素为止
命令 | 用例和描述 |
BLPOP | BLPOP key- name [key- name ...] timeout—— 从 第一个 非 空 列表 中弹 出 位于 最 左端 的 元素, 或者 在 timeout 秒 之内 阻塞 并 等待 可 弹出 的 元素 出现 |
BRPOP | BRPOP key- name [key- name ...] timeout—— 从 第一个 非 空 列表 中弹 出 位于 最 右端 的 元素, 或者 在 timeout 秒 之内 阻塞 并 等待 可 弹出 的 元素 出现 |
RPOPLPUSH | RPOPLPUSH source- key dest- key—— 从 source- key 列表 中弹 出 位于 最 右端 的 元素, 然后 将 这个 元素 推入 dest- key 列表 的 最 左端, 并向 用户 返回 这个 元素 |
BRPOPLUSH | BRPOPLPUSH source- key dest- key timeout—— 从 source- key 列表 中弹 出 位于 最 右端 的 元素, 然后 将 这个 元素 推入 dest- key 列表 的 最 左端, 并向 用户 返回 这个 元素; 如果 source- key 为 空, 那么 在 timeout 秒 之内 阻塞 并 等待 可 弹出 的 元素 出现 |
对于 阻塞 弹出 命令 和 弹出 并 推入 命令, 最 常见 的 用 例 就是 消息 传递( messaging) 和 任务 队列( task queue)