Redis五大数据类型——list

Redis五大数据类型 list

1、概念

1、单键多值
2、Redis列表是简单的字符串列表,按照插入顺序排序,可以添加左边/右边
3、底层实际上是一个双向链表,对两端的操作性能好,但是通过索引下标的操作中间节点性能较差
4、 list不去重

在这里插入图片描述
2、常用命令

1、lpush/rpush < key> < value1> < value2> 从左边/右边插入一个或多个值
.
2、lpop/rpop < key> 从左边/右边吐出一个值;值在键在,值无键亡
.
3、rpoplpush < key1> < key2> 从< key1>列表右边吐出一个值,插到< key2>列表左边
.
4、lrange < key> < start> < stop> 按照索引下标获得元素(从左到右)
.
5、lindex < key> < index> 按照索引下标获得元素(从左到右)
.
6、llen < key> 获得列表长度
.
7、linsert < key> before < value> < newvalue> 在< value>的后面插入< newvalue> 插入值
.
9、lrem < key> < n> < value> 从左边删除n个value(从左到右)

127.0.0.1:6379> lpush test 0 1 2 3 4 5
6
127.0.0.1:6379> rpush test 6 7 8 9 10
11
127.0.0.1:6379> lrange test 0 -1
5
4
3
2
1
0
6
7
8
9
10
127.0.0.1:6379> rpoplpush test test2  //从test的后面取出一个值放入test2的前面
10
127.0.0.1:6379> lindex test 6
6
127.0.0.1:6379> linsert test2 AFTER d e  //往 d 的后面插入 e
6
127.0.0.1:6379> lrem test 1 5  //从test里面从前往后删除一个5 
1
127.0.0.1:6379> llen test
9
127.0.0.1:6379> lpop test  //从左边(前面) 弹出一个值
4
127.0.0.1:6379> rpop test  //从右边(后面) 弹出一个值
9

注意:

List集合的数据结构的是,“先进后出”(即,存进去的元素,要在后它后面的元素依次取出后,才能取出该元素)。
如图:
在这里插入图片描述
压栈:就是存元素。即,把元素存储到栈的顶端位置,栈中已有元素依次向栈底方向移动一个位置。
.
弹栈:就是取元素。即,把栈的顶端位置元素取出,栈中已有元素依次向栈顶方向移动一个位置。

3、应用场景:

1、对数据大的集合数据删减 最新列表、列表显示、热点新闻、关注列表、留言评价…分页等 (列表都是具有顺序的,所以list的结构就注定了它十分的适合)
.
2、任务队列 list通常用来实现一个消息队列,因为是链表结构,可以确保先后顺序
.
3、补充: rpoplpush list1 list2 移除list1最后一个元素,并将该元素添加到list2并返回此元素
用此命令可以实现订单下单流程、用户系统登录注册短信等。

总结:

从元素插入和删除的效率视角来看,如果我们是在链表的两头插入或删除元素,这将会是非常高效的操作,即使链表中已经存储了百万条记录,该操作也可以在较短时间内完成。
但是值得注意的事,如果元素插入或删除操作是作用于链表中间,那效率则会非常低(在数据量非常大的情况下)

下一章:Redis五大数据类型 set

一起努力学习吧!!!😁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis有五种主要的数据类型,它们分别是字符串(string)、哈希(hash)、列表(list)、集合(set)和有序集合(sorted set),它们之间的区别如下: 1. 字符串(string):字符串是 Redis 最基础的数据类型,它存储的是一个字符串值,可以是数字、字符、二进制数据等。字符串类型支持的操作包括设置和获取值、对值进行加、减、乘、除等运算、对值进行位操作等。 2. 哈希(hash):哈希类型是一种键值对类型,它存储的是一个键值对集合,其中键和值都是字符串类型的数据。哈希类型支持的操作包括设置和获取值、删除键值对、获取所有键值对等。 3. 列表(list):列表类型是一种链表结构,它存储的是一个有序的元素集合,每个元素都是一个字符串。列表类型支持的操作包括在列表的头部或尾部插入元素、在列表中删除元素、获取列表的长度、获取列表中的元素等。 4. 集合(set):集合类型是一个无序的元素集合,每个元素都是一个字符串。集合类型支持的操作包括向集合中添加元素、从集合中删除元素、获取集合中的元素个数、判断一个元素是否在集合中等。 5. 有序集合(sorted set):有序集合类型也是一个元素集合,每个元素都是一个字符串,但是它们和集合类型不同的是,有序集合中的元素是有序的,并且每个元素都有一个分数值。有序集合类型支持的操作包括向集合中添加元素、从集合中删除元素、获取集合中的元素个数、根据分数值范围获取元素等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值