LINSERT key BEFORE|AFTER pivot value

可用版本: >= 2.2.0
时间复杂度: O(N), N 为寻找 pivot 过程中经过的元素数量。

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

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

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

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

返回值

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

代码示例

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