JAVAWEB开发之redis学习(三)——list相关的操作命令

这篇博客详细介绍了Redis中的List数据类型,包括插入、查看、删除等操作,如LPUSH、LRANGE、LPOP等,并探讨了List在消息队列中的应用,强调了RPOPLPUSH命令在确保消息可靠传递中的作用。

一、概述

在redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不存在,redis将为该键创建一个新的链表。与此相反,如果该链表中的所有元素都被移除,那么该键也将会被从数据库中移除。List中可以包含的最大元素数量是4*1024^3-1=4294967295。从元素插入和删除的效率视角来看,如果我们是在链表的两头插入或删除元素,这将会是非常高效的操作,即使链表中已经存储了百万条记录,该操作也可以在常量范围内完成。然而需要说明的是,如果元素插入或删除操作作用于链表的中间,那将是非常低效的。

二、相关命令列表

格式:命令原型     时间复杂度    命令描述  返回值

  •  LPUSH   key  value  [value  ...]   O(1) 在指定key所关联的List  Value的头部插入参数中给出的所有values。如果该key不存在,该命令将在插入之前创建一个与该key关联的空链表,之后再将数据从链表的头部插入。如果该键的Value不是链表类型,该命令将返回相关的错误信息。返回值是插入后链表中元素的数量。
  •  LPUSHX  key  value      O(1)  仅有当参数中指定的key存在时,该命令才会在其所关联的List  Value的头部插入参数给出的value,否则不会有任何操作发生。返回插入后链表中元素的数量。
  • LRANGE   key  start   stop  O(S+N)  时间复杂度中S为start参数表示的偏移量,N表示元素的数量。该命令的参数start和end都是0-based。即0表示链表头部的第一个元素。其中start的值也可以为负值,-1表示链表中的最后一个元素(倒数第一个),-2表示倒数第二个并以此类推。该命令在获取元素时,start和end位置上的元素也会被取出。如果start的值大于链表中元素的数量,空链表将会被返回。如果end的值大于元素的数量,该命令则获取从start(包括start)开始,链表中所剩余的所有元素。返回指定范围内元素的列表(不对列表做任何修改)。
  • LPOP  key   O(1)   返回并弹出指定key关联的链表中的第一个元素,即头部元素。如果该key不存在,返回nil。返回值:返回链表头部元素(注意是弹出)
  • LLEN  key    O(1)  
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值