Redis-List类型

1. 概念

Redis列表是一种比较灵活的链表数据结构,它可以充当队列或者栈的角色。它可以用来存储多个有序的字符串的,列表当中的每一个字符看做一个元素,一个列表当中可以存储有一个或者多个元素,Redis的list支持存储2^32次方-1个元素。

Redis列表是链表型的数据结构,所以它的元素是有序的,而且列表内的元素是可以重复的。意味着它可以根据链表的下标获取指定的元素和某个范围内的元素集。

2. 常用命令

  1. Lpush 命令:将一个或多个值插入到列表头部。 如果 key 不存在,则创建list,然后再插入数据操作。 当 key存在但不是列表类型时,返回一个错误。
    在这里插入图片描述

  2. Rpush 命令:同理,将一个或者多个元素从list的尾部插入。
    在这里插入图片描述

  3. Blpop 命令:Redis的List是链表结构,所以BLPOP命令正是取出列表的第一个元素,如果List当中没有元素,会一直等待到超时,或者发现有数据为止。
    在这里插入图片描述
    10是指定10秒内返回,假如10秒没有可返回的数据,就返回nil

  4. Brpop 命令:同理,Brpop是移出list列表的最后一个元素。

  5. Linsert 命令:在List列表的某一个元素前或者后插入另外一个元素。当指的的元素不存在时,不执行任何动作。如果列表不存在时,视为空列表,不执行任何动作。
    在这里插入图片描述

  6. Lindex 命令:用于通过链表的下标索引获取列表中的元素。这里的下标也可以是负数表示List的最后一个元素,-2表示倒数第二个元素。
    在这里插入图片描述

  7. Llen 命令:用于返回List列表的长度。 假如List不存在,则List被解释为一个空列表,返回 0 。
    在这里插入图片描述

  8. Lrange命令:用于返回指定List区间内的元素。区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2表示列表的倒数第二个元素,以此类推。
    在这里插入图片描述

3. List类型应用场景

  • 队列 - 秒杀抢购:List类型的lpop和rpush(或者反过来,lpush和rpop)能实现队列的功能,故而可以用Redis的List类型实现简单的点对点的消息队列。
  • 排行榜:List类型的lrange命令可以分页查看队列中的数据。可将每隔一段时间计算一次的排行榜存储在List类型中,如京东每日的手机销量排行、学校每次月考学生的成绩排名、斗鱼年终盛典主播排名等。但是,并不是所有的排行榜都能用List类型实现,只有定时计算的排行榜才适合使用List类型存储,与定时计算的排行榜相对应的是实时计算的排行榜,List类型不能支持实时计算的排行榜。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值