LINSERT

LINSERT key BEFORE|AFTER pivot value

将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。

pivot 不存在于列表 key 时,不执行任何操作。

key 不存在时, key 被视为空列表,不执行任何操作。

如果 key 不是列表类型,返回一个错误。

可用版本:

>= 2.2.0

时间复杂度:

O(N), N 为寻找 pivot 过程中经过的元素数量。

返回值:

如果命令执行成功,返回插入操作完成之后,列表的长度。如果没有找到 pivot ,返回 -1 。如果 key 不存在或为空列表,返回 0

  1. redis> RPUSH mylist "Hello"
  2. (integer) 1
  3. redis> RPUSH mylist "World"
  4. (integer) 2
  5. redis> LINSERT mylist BEFORE "World" "There"
  6. (integer) 3
  7. redis> LRANGE mylist 0 -1
  8. 1) "Hello"
  9. 2) "There"
  10. 3) "World"
  11. # 对一个非空列表插入,查找一个不存在的 pivot
  12. redis> LINSERT mylist BEFORE "go" "let's"
  13. (integer) -1 # 失败
  14. # 对一个空列表执行 LINSERT 命令
  15. redis> EXISTS fake_list
  16. (integer) 0
  17. redis> LINSERT fake_list BEFORE "nono" "gogogog"
  18. (integer) 0 # 失败

原文: https://wizardforcel.gitbooks.io/redis-doc/content/ref/72.html