1. LINSERT key BEFORE|AFTER pivot value
将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。
当 pivot 不存在于列表 key 时,不执行任何操作。
当 key 不存在时, key 被视为空列表,不执行任何操作。
如果 key 不是列表类型,返回一个错误。
1.1. 起始版本:
2.2.0
1.2. 时间复杂度:
O(N), N 为寻找 pivot 过程中经过的元素数量。
1.3. 返回值:
如果命令执行成功,返回插入操作完成之后,列表的长度。 如果没有找到 pivot ,返回 -1 。 如果 key 不存在或为空列表,返回 0 。
1.4. DEMO
# 如果 key 不存在或为空列表,返回 0 。
127.0.0.1:6379> EXISTS mylist
(integer) 0
127.0.0.1:6379> LINSERT mylist before 3 2
(integer) 0
# 如果命令执行成功,返回插入操作完成之后,列表的长度。
127.0.0.1:6379> RPUSH mylist 1 3 4 5
(integer) 4
127.0.0.1:6379> LINSERT mylist before 3 2
(integer) 5
127.0.0.1:6379> LRANGE mylist 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
# 如果没有找到 pivot ,返回 -1 。
127.0.0.1:6379> LINSERT mylist after 6 7
(integer) -1
# 对非列表类型的 key 进行 LINSERT 操作, 返回错误
127.0.0.1:6379> set mykey 1
OK
127.0.0.1:6379> LINSERT mykey before 1 0
(error) WRONGTYPE Operation against a key holding the wrong kind of value