List*

在redis里面,我们可以把list玩成,栈,队列,阻塞队列
所有的list命令都是用l开头的,Redis不区分大小写命令

redis set覆盖 redis list 覆盖_队列


移除操作

redis set覆盖 redis list 覆盖_redis_02


Lindex 获取操作

redis set覆盖 redis list 覆盖_列表_03


Llen

redis set覆盖 redis list 覆盖_redis_04


移除指定的值!
举例:取关 uid
Lrem

redis set覆盖 redis list 覆盖_java_05


trim 修剪: list 截断

redis set覆盖 redis list 覆盖_redis_06


rpoplpush #移除列表的最后一个元素,将他移动到新的列表中!

redis set覆盖 redis list 覆盖_列表_07


lset 将列表中指定下标的值替换为另外一个值,更新操作

redis set覆盖 redis list 覆盖_链表_08


linsert #将某个具体的value插入到列表中某个元素的前面或者后面!

redis set覆盖 redis list 覆盖_链表_09

总结:

  • 他实际上是一个链表,before Node after , left .right 都可以插入值
  • 如果key不存在,创建新的链表
  • 如果key存在,新增内容
  • 如果移除了所有值,空链表,也代表不存在!
  • 在两边插入或改动值,效率最高!中间元素,相对效率会低一点!
    消息排队!消息队列(Lpush Rpop), 栈( Lpush Lpop)