Redis应用(四)---list类型运用

概述

redis中的list类型可以存储一个有序的字符串列表。
它是一个双向链表,常用的操作是向列表两端添加元素。

适用场景

链表可以非常快速地获取两端的元素,如获取排行榜数据;网站新鲜事;数据分页设计等。
还能作为消息队列使用,但是不推荐使用,因为当前已经有很成熟的消息队列产品如rocketMq,kafka,activeMq等。redis的list不是专门为消息队列设置的,其中有很多限制。

命令

1.向队列两端添加元素
lpush key value[value …]:向队列左边添加元素,返回值表示添加元素后的列表长度。
rpush key value[value …]:向队列右边添加元素,返回值表示添加元素后的列表长度。
lrange key start stop :获取列表片段
lrange key 0 -1:获取整个列表
在这里插入图片描述
从返回值中可以看出lpush和rpush的区别:头插和尾插

2.删除列表中指定的值
lrem key count value
删除列表中前count个值为value的元素,返回值是实际删除的元素个数。
根据count的值不同lrem有不同的操作

  • count>0 :从列表左边开始删除前count个值为value的元素
  • count<0 :从列表右边开始删除前count个值为value的元素
  • count=0 :删除所有值为value的元素
    在这里插入图片描述
    从右边删除第一个值为2的元素
    在这里插入图片描述
    3.获取指定索引位置的元素值
    lindex key index
  • index>=0 :从左边开始计算索引(第一个索引值是0)
  • index<0 :从右边开始计算索引 (最右边的索引值是-1)
    在这里插入图片描述
    4.为指定位置的元素赋值
    lset key index value
    在这里插入图片描述
    5.保留列表指定位置的值
    ltrim key start end
    ltrim 常和lpush命令一起使用来限制列表中的元素,比如我们希望列表中只保留最新的100条日志。
    在这里插入图片描述
    6.在列表中插入元素
    linsert key before|after pivot value
    该命令会先从列表左边开始遍历查找值为pivot的元素,然后根据参数before或after来决定value插入该元素之前还是之后
    在这里插入图片描述
    7.将元素从一个列表转到另一个列表
    rpoplpush source destination
    该命令会先从source列表中取出最右边的一个元素,然后加入到destination列表的左边,并返回这个元素的值,整个过程是原子的。
    当source和destination是同一个元素时,该命令会不断地将队尾的元素转移到队首。
    在这里插入图片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章