redis 数据类型3 -- ‘list列表‘ (重中之重)

首先我们还是一样,说下列表的定义:Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

看图
在这里插入图片描述

之所以说列表很重要,是因为列表可以两端插入弹出的特点,使得它非常的强大;
当你lpushrpop就实现了队列的特点,lpushlpop做到了栈的先进后出的特点;高并发下的防止超卖的问题,就可以用队列的特点来解决;

-使用列表技巧:
lpush+lpop=Stack(栈)
lpush+rpop=Queue(队列)
lpush+ltrim=Capped Collection(有限集合)
lpush+brpop=Message Queue(消息队列)


redis 列表的基本操作 ;(命令行下的操作)

  1. BLPOP key1 [key2 ] timeout
    移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
  2. BRPOP key1 [key2 ] timeout
    移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
  3. BRPOPLPUSH source destination timeout
    从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
  4. LINDEX key index
    通过索引获取列表中的元素
  5. LINSERT key BEFORE|AFTER pivot value
    在列表的元素前或者后插入元素
  6. LLEN key
    获取列表长度
  7. LPOP key
    移出并获取列表的第一个元素
  8. LPUSH key value1 [value2]
    将一个或多个值插入到列表头部
  9. LPUSHX key value
    将一个值插入到已存在的列表头部
  10. LRANGE key start stop
    获取列表指定范围内的元素
  11. LREM key count value
    移除列表元素
  12. LSET key index value
    通过索引设置列表元素的值
  13. LTRIM key start stop
    对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
  14. RPOP key
    移除列表的最后一个元素,返回值为移除的元素。
  15. RPOPLPUSH source destination
    移除列表的最后一个元素,并将该元素添加到另一个列表并返回
  16. RPUSH key value1 [value2]
    在列表中添加一个或多个值
  17. RPUSHX key value
    为已存在的列表添加值

redis 列表(list)的应用场景:

  • 消息队列

现在有个秒杀的场景,要防止商品的超卖。你就可以用消息队列的来实现,每次请求都插入到队列的一端,比如说LPUSH。然后再从队列的另一端取出,且用阻塞的方式,如果没有获取到会等待段时间BRPOP。

  • 最新消息排行等功能

比如朋友圈的时间线。想想,朋友圈是个管道,每发一条都会出现在朋友圈的最上;发布一条票圈,之前的票圈回往下沉。贴吧的帖子是不是一样的特点,担任贴吧有置顶这些功能;

图片识别队列,信息验证api队列等等情况…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jayLog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值