Redis的list类型核心知识

不会说全部api,api这东西想用自己help @list就行了。

一、特点

list类型有序可重复,这里的有序不是指按照数字大小或某规则进行升降序排序,而是指放入元素的顺序。

二、正负索引

比如

lpush lp a b c d e f
# lrange的结果是f e d c b a
lrange lp 0 -1
# 得到b a
lrange lp -2 -1

两个知识点

  • 放入的abcdef取出的确是倒序,这是因为采用的lpush,每次都往左边放。
  • lrange显示元素居然支持0 -1/ -2 -1这种负数,正是因为负向索引。
类型abcdef
正向索引543210
负向索引-1-2-3-4-5-6

三、api

1、lindex

1.1、概念

语法:lindex key index
找到第n个元素,若不知道列表多长,但是想找到最后一个元素,那么利用负向索引直接lindex key -1即可,想找倒数第二个元素就是lindex key -1
在这里插入图片描述

1.2、演示

在这里插入图片描述

对照正负索引表格,完全正确。

2、lset

2.1、概念

设置第index个元素的值为新值。比如想设置key的最后一个元素为xxx,则
lset key -1 xxx
在这里插入图片描述

2.2、演示

在这里插入图片描述

3、其他api

自己help @list进行查看。

四、模拟数据结构

1、模拟栈

同向命令可以模拟栈,比如lpush+lpop相当于先进后出,后进先出。

2、模拟队列

反向命令可以模拟队列,比如lpush+rpop相当于先进先出。

3、模拟数组

lindex+lset这种都是基于下标操作的,可以实现数组功能。

4、模拟阻塞单播队列

blpop,很多真实业务场景中也存在利用blpop模拟阻塞队列,类似于实现简单mq功能。

五、总结

  • 特点
  • 正负索引
  • 常见api
  • 模拟数据结构

六、个人公众号

微信公众号【Java码农社区】
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

【原】编程界的小学生

没有打赏我依然会坚持。

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

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

打赏作者

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

抵扣说明:

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

余额充值