Redis数据类型 之 list

list列表:有序、能重复,相当于Java代码中的List。

可以将Redis中的list当作一个两头开口的管子:

  • lpush是从左往右依次往管中放数据
  • rpush是从右往左依次往管中放数据
  • lrange是从左往右从管中取数据
  • 下标从左往右依次增大

lpush key value

将值 value 插入到列表 key 的表头,当且仅当 key 存在并且是一个列表。
在这里插入图片描述

rpush key value [value ...]

将一个或多个值 value 插入到列表 key 的表尾(最右边)。
在这里插入图片描述

lrange key start stop

返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定
注意:如果stop=-1表示取出所有的元素。在这里插入图片描述

lset key index value

将列表 key 下标为 index 的元素的值设置为 value 。
在这里插入图片描述

lindex key index

返回列表 key 中,下标为 index 的元素。
在这里插入图片描述

llen key

返回列表 key 的长度。
在这里插入图片描述

linsert key before|after pivot value

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

  • 当 pivot 不存在于列表 key 时,不执行任何操作。
  • 当 key 不存在时, key 被视为空列表,不执行任何操作。
    在这里插入图片描述

    ltrim key start stop

    对一个列表进行修剪(trim),让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
    在这里插入图片描述

lpop key

移除并返回列表 key 的第一个元素。
在这里插入图片描述

rpop key

移除并返回列表 key 的最后一个元素。
在这里插入图片描述

rpoplpush source destination

命令 rpoplpush 在一个原子时间内,执行以下两个动作:

  • 将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。
  • 将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。
  • 如果source和destination是同一个列表,就实现了环形操作
    在这里插入图片描述
    • 环形操作
      在这里插入图片描述