Redis 基础教程

Redis 命令

Redis 高级教程

Redis 笔记

Redis LINSERT 命令

Redis 列表(Lists) Redis 列表(Lists)


Redis LINSERT 命令表示将值 value 插入到指定列表 key 当中,位于值 pivot 之前或之后。当指定元素不存在于列表中时,不执行任何操作。当列表不存在时,被视为空列表,不执行任何操作。如果 key 不是列表类型,返回一个错误。

命令格式

LINSERT key BEFORE|AFTER pivot value

可用版本:2.2.0

时间复杂度:O(N),N 为寻找 pivot 过程中经过的元素数量。当 pivot 在列表的头位置时,时间复杂度为 O(1),当 pivot 在列表的尾部时,时间复杂度为 O(N)。

命令参数

  • BEFORE|AFTER:分别表示在 pivot 元素之前或之后位置。
  • pivot:基准元素。

命令返回值

LINSERT 命令返回有 3 种情况:

  • 返回列表的长度,当指定的列表中 pivot 元素存在时,返回插入操作后的列表长度。
  • 返回 0,当指定的列表 key 不存在或者列表为空时。
  • 返回 -1,当指定的列表中 pivot 元素不存在时。

示例

redis> LINSERT list AFTER beijing shanghai    # 列表 key 不存在,返回 0
(integer) 0
redis> LPUSH list beijing
(integer) 1
redis> LINSERT list AFTER beijing shanghai    # 列表 key 存在,且 pivot 也存在,返回插入操作的后列表长度
(integer) 2
redis> LINSERT list AFTER guangzhou shenzhen  # 列表 key 存在,但 pivot 不存在,返回 -1
(integer) -1
redis>