LINSERT:将元素插入到列表
通过使用 LINSERT
命令,用户可以将一个新元素插入到列表某个指定元素的前面或者后面:
- LINSERT list BEFORE|AFTER target_element new_element
LINSERT
命令第二个参数的值可以是 BEFORE
或者 AFTER
,它们分别用于指示命令将新元素插入到目标元素的前面或者后面;命令在完成插入操作之后会返回列表当前的长度作为返回值。
比如说,对于以下这个 lst
列表:
- redis> LRANGE lst 0 -1
- 1) "a"
- 2) "b"
- 3) "c"
我们可以通过执行以下 LINSERT
命令,将元素 "10086"
插入到元素 "b"
的前面:
- redis> LINSERT lst BEFORE "b" "10086"
- (integer) 4
- redis> LRANGE lst 0 -1
- 1) "a"
- 2) "10086"
- 3) "b"
- 4) "c"
还可以通过执行以下 LINSERT
命令,将元素 "12345"
插入到元素 "c"
的后面:
- redis> LINSERT lst AFTER "c" "12345"
- (integer) 5
- redis> LRANGE lst 0 -1
- 1) "a"
- 2) "10086"
- 3) "b"
- 4) "c"
- 5) "12345"
图 4-21 展示了上述两个 LINSERT
命令的执行过程。
图 4-21 LINSERT
命令的执行过程
处理不存在的元素
为了执行插入操作,LINSERT
命令要求用户给定的目标元素必须已经存在于列表当中;相反地,如果用户给定的目标元素并不存在,那么 LINSERT
命令将返回 -1
表示插入失败:
- redis> LINSERT lst BEFORE "not-exists-element" "new element"
- (integer) -1
在插入操作执行失败的情况下,列表包含的元素将不会发生任何变化。
其他信息
属性 | 值 |
---|---|
复杂度 | O(N) ,其中 N 为给定列表的长度。 |
版本要求 | LINSERT 命令从 Redis 2.2.0 版本开始可用。 |