redis系列(05):List类型操作
  oQNKXeHVeoXq 2023年12月12日 33 0

 


Redis中,List类型是按照插入顺序排序的字符串链表,和数据结构中的普通链表一样,

如果是在链表的两头插入或删除元素,这将会是非常高效的操作

如果元素插入或删除操作 是作用于链表中间,那将会是非常低效的

List中可以包含的最大元素数量是 4294967295

 

应用场景:mq、有序列表

 

lpush、lrange、lpushx

lpush

创建键test及与其关联的List,然后将参数中的values从左到右依次插入

redis系列(05):List类型操作_链表

 

可以通过type查看数据类型

redis系列(05):List类型操作_链表_02

 

lrange

获取从位置0开始到位置2结束的3个元素

redis系列(05):List类型操作_命令操作_03

 

获取链表中的全部元素,其中0表示第一个元素,­1表示最后一个元素

redis系列(05):List类型操作_命令操作_04

 

获取从倒数第3个到倒数第2个的元素

redis系列(05):List类型操作_命令操作_05

 

lpushx,表示键存在时才能插入

如果键不存在,命令将不会进行任何操作,其返回值为0

redis系列(05):List类型操作_命令操作_06

 

可以看到test2没有关联任何List Value

redis系列(05):List类型操作_链表_07

 

test键此时已经存在,所以该命令插入成功,并返回链表中当前元素的数量

redis系列(05):List类型操作_链表_08

 

获取该键的List中的第一个元素

redis系列(05):List类型操作_List_09

 

lpop、llen

lpop,取出链表头部的元素

llen,列表长度

redis系列(05):List类型操作_List_10

 

 

lrem、lindex、lset、ltrim

lrem,从头部(left)向尾部(right)操作链表

redis系列(05):List类型操作_List_11

 

查看删除后链表中的全部元素

redis系列(05):List类型操作_List_12

 

lindex,根据索引获取值

获取索引值为1(头部的第二个元素)的元素值

redis系列(05):List类型操作_链表_13

 

redis系列(05):List类型操作_命令操作_14

 

lset

将索引值为1(头部的第二个元素)的元素值设置为新值w

redis系列(05):List类型操作_命令操作_15

 

索引值6超过了链表中元素的数量,该命令返回nil

redis系列(05):List类型操作_List_16

 

设置的索引值6超过了链表中元素的数量,设置失败,该命令返回错误信息

redis系列(05):List类型操作_链表_17

 

ltrim

仅保留索引值0到2之间的3个元素,注意第0个和第2个元素均被保留

redis系列(05):List类型操作_命令操作_18

 

linsert、rpop

linsert

redis系列(05):List类型操作_链表_19

在a的前面插入新元素a0

redis系列(05):List类型操作_List_20

 

在e的后面插入新元素e2,从返回结果看已经插入成功

redis系列(05):List类型操作_链表_21

 

在不存在的元素之前或之后插入新元素,该命令操作失败,并返回­1

redis系列(05):List类型操作_命令操作_22

 

为不存在的Key插入新元素,该命令操作失败,返回0

redis系列(05):List类型操作_命令操作_23

 

rpop

从尾部(right)弹出元素,即取出元素

redis系列(05):List类型操作_命令操作_24

 

redis系列(05):List类型操作_List_25

 

__EOF__


本文作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月12日 0

暂无评论

推荐阅读
oQNKXeHVeoXq