MS-Redis-List

List其实就是一个每个子元素都是String类型的双向链表,所以List既可以作为队列,也可以做栈。

  1. 重要的方法
    • lpush | rpush
    • lpop | rpop
    • lrange
    • llen
    • lindex
  2. API
    • lpush key value
      向key头部添加一个元素value
    • lpushx key value
      类似于lpush,区别是,如果key不存在就什么都不做
    • rpush key value
      向key尾部添加一个元素value
    • linsert key before|after pivot value
      在key中的pivot之前或者之后插入一个value
      如果pivot不存在,就什么都不做,返回-1
    • lset key position value
      设置位置position为value,下标从0开始,如果position超过最大下标,报错
    • lrem key count value
      如果count为正数,从头部开始,删除count个value
      如果count为0,删除所有的value
      如果count为负数,从尾部开始,删除|count|个value
    • ltrim key start end
      修剪key,只保留从start到end下标的数,下标从0开始
      start,end为正数时,从头部开始数
      start,end为负数时,表示倒数第几个,如:-1表示倒数第一个
    • lpop key
      从key中的头部弹出一个value,即队列中的出队
      如果key中没有值,返回空
    • rpop key
      从key中的尾部弹出一个value,即栈中的出栈
    • rpoplpush key1 key2
      从key1中队尾出栈一个value,塞进key2的头部
      这个操作是原子的,即key1不存在或者为空,或key2不为队列都返回nil,什么都不做
    • lindex key index
      获取key下标index的值
    • llen key
      获取key中元素的个数,即key的长度
    • lrange key start end
      获取key从start到end的所有元素,
      start,end为负数时,表示倒数
      lrange key 0 -1可以获取所有的元素
  3. 常见场景:
    • 可用于任务队列或者任务堆栈使用
    • 可用于列表分页使用(通过lrange pageperpage (page+1)perpage-1)

你可能感兴趣的:(MS-Redis-List)