005:Redis-List链表类型操作

List链表类型介绍:

list类型其实就是一个双向链表。通过push,pop操作从链表的头部或者尾部添加或者删除元素。
这使得list既可以用作栈,也可以用作队列。

该list链表类型应用场合:

比如获取最新的10个登录用户信息:

 select * from user order by logintime desc limit 10;
  • 上面的sql语句可以实现用户需求,但是数据多的时候,全部数据都会收到影响,对数据库的负载比较高。 必要情况还需要给关键字段(id或者 logintime)设置索引,索引也比较消耗系统资源。

  • 而如果通过list链表实现以上功能,可以在list链表中只保留最新的10个数据,当进来一个新数据的时候就删除一个旧数据,每次就可以从链表中直接获得需要的数据。极大节省各方面资源消耗。

在这里插入图片描述

List链表类型操作:

如上图所示,
通过list链表保存登录系统的最新5个用户信息:
xiaoli jack xiaoming linken mary tom

我选择了第二个数据库来进行操作。
在这里插入图片描述
该数据库里面没有key。

这里先停一下,简单介绍下list类型操作
在这里插入图片描述
然后我们看操作图来继续进行模拟。

首先lpush key string :
在这里插入图片描述
在key对应的头部添加了5个元素。

我们现在是设置了一个链表key,里面保存了5个元素
在这里插入图片描述

根据之前的图所示,目前已经有5个元素。xiaoli进入的话,需要踢出一个旧用户。
在这里插入图片描述
先把xiaoli添加到链表key中:
在这里插入图片描述
rpop key:再踢出tom
在这里插入图片描述
rpop key 是直接删除链表尾部的一个元素。

lrange key start end:
通过范围查找链表内部的所有元素
目前我们有5个用户。所以范围是0-4.
在这里插入图片描述
llen key:
返回对应list的长度。
在这里插入图片描述
lpop key :从list头部删除元素(跟rpop key 操作相同,不过他是从头部也就是链表left删除)

ltrim key start end :
截取list。然后保留指定区间的
在这里插入图片描述
常用操作如上面介绍的那些,很简单。

我们上面的链表介绍只是一边进一边出,其实list类型就是一个双向链表。
这使得list既可以用作栈,也可以用作队列。
在这里插入图片描述
栈:上进上出,先进后出。
队列:上进下出,先进先出。

这里先不作过多介绍了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

考古学家lx(李玺)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值