数据类型-list 类型介绍与基本操作| 学习笔记

简介: 快速学习数据类型-list 类型介绍与基本操作

开发者学堂课程【Redis 入门到精通(基础篇)数据类型-list 类型介绍与基本操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/764/detail/13380


数据类型-list 类型介绍与基本操作

 

内容介绍

一、list 类型

二、list 类型数据基本操作


一、list 类型

数据存储需求:

存储多个数据,并对数据进入存储空间的顺序进行区分。
需要的存储结构:

一个存储空间保存多个数据,且通过数据可以体现进入顺序。

list 类型:

保存多个数据,底层使用双向链表存储结构实现。

image.png

List 属于一种通用性的数据存储结构,很多计算机编程都有这种模型,redis 里面,string 存储单个数据,hash 也不进行大量,不同种类不同 field,当我们存储多个数据时,前面的类型就有点捉襟见肘,这个时候就提出了list,存储多个数据,并对数据进入存储空间的顺序进行区分,对数据的关注点在数据进入的顺序,一个存储空间保存多个数据,且通过数据可以体现进入顺序,这种具体体现就是一个链表结构,讲究元素的进出顺序,list 模型使用的就是底层双向链表的结构,做一个简单回顾,复习。

顺序表,是从头指针开始,依次放入,当确定时,间距相同,查询速度特别快,但是带来的缺点就是动一下特别困难,需要所有的节点移动,然后才可以进行一个中间插入,特点就是,查询快,增删操作慢;相应的,就出现了链表,来解决这个问题,数据之间通过节点连接,但是数据间并不是特别紧凑,所以找数据很慢,无论怎样都是指针连接,会占用内存空间,所有的都是通过指针进行指向,所以,进行插入时,只需要将指针指向进行一个切换就可以了,不需要消耗很大的工作,但是相应的进行查询时很消耗内存进行查询;

所以相应的就出现了双向链表,跟链表类似,但是数据间的指针是双向的,如果需要插入,那么就先将后指针打开进行转接,然后再进行前指针的转接,这就是双向链表,双向链表不仅仅可以从前开始,还可以从后面开始,或者直接串起来,做一个循环。

双向链表的好处就是在reids里面,数据可以从两头进行操作,有助于构建特殊的结构,在输入数据时可以通过两边进入,有顺序的概念,并可以大大提高效率。

image.png


二、list 类型数据基本操作

●添加/修改数据

lpush key value1 [value2] ...

rpush key value1 [value2] ...
●获取数据
lrange key start stop

lindex key index
llen key
●获取并移除数据
1pop key
rpop key

List 的基本操作,看一下添加数据的操作,添加叫 push,输入 lpush list1 huawei,lpush 从左边进入,rpush 从右边进入,这里的左右并没有明确的规定,根据每个人的认识与认知规定,你认为左边是头那么左边就是头,然后进行键入,lpush list1 apple,lpush list1 microsoft,这是添加,然后进行读取,lrange,从左边读取,lrange list1 0 2,查看数据,

microsoft,apple,huawei,跟添加数据相反,改成rpush list2 a b c,再次查看,

得到跟添加顺序一样,那么我们通过右进左查,格式就是统一的,这个就是进入顺序的概念,然后就定义了左边为头,右边为尾的概念,这样就建立起来一个概念模型,接下来反着查看,lrange list1 0 -1,这个就是反序查看,start stop 就是索引,正序跟倒序;

然后输入 lindex list1 0,查看第一个数据,如果是 lindex list1,是查看数据个数,lpush list3 a b c,现在 lpop list3,得到c,取出数据,现在 list3就剩下2个,再此操作,b,然后a,最后就没有元素了。可以去测试双向进入然后再取出。

相关文章
|
6月前
|
存储 Java
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
Java学习笔记 List集合的定义、集合的遍历、迭代器的使用
|
3月前
|
存储 消息中间件 NoSQL
Redis数据结构:List类型全面解析
Redis数据结构——List类型全面解析:存储多个有序的字符串,列表中每个字符串成为元素 Eelement,最多可以存储 2^32-1 个元素。可对列表两端插入(push)和弹出(pop)、获取指定范围的元素列表等,常见命令。 底层数据结构:3.2版本之前,底层采用**压缩链表ZipList**和**双向链表LinkedList**;3.2版本之后,底层数据结构为**快速链表QuickList** 列表是一种比较灵活的数据结构,可以充当栈、队列、阻塞队列,在实际开发中有很多应用场景。
|
4月前
|
消息中间件 存储 监控
redis 的List类型 实现 排行榜
【10月更文挑战第8天】
58 2
|
4月前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
40 3
|
5月前
|
存储 JSON NoSQL
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
这篇文章是关于Redis基本数据结构的学习笔记,包括了String、Hash、Set、List和SortedSet的介绍和常用命令。文章解释了每种数据结构的特点和使用场景,并通过命令示例演示了如何在Redis中操作这些数据结构。此外,还提供了一些练习示例,帮助读者更好地理解和应用这些数据结构。
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
|
6月前
|
存储 NoSQL 算法
Redis6入门到实战------ 三、常用五大数据类型(列表(List)、集合(Set)、哈希(Hash)、Zset(sorted set))
这是关于Redis 6入门到实战的文章,具体内容涉及Redis的五大数据类型:列表(List)、集合(Set)、哈希(Hash)、有序集合(Zset(sorted set))。文章详细介绍了这些数据类型的特点、常用命令以及它们背后的数据结构。如果您有任何关于Redis的具体问题或需要进一步的帮助,请随时告诉我。
|
6月前
|
SQL 机器学习/深度学习 算法
【python】python指南(五):静态类型注解之List
【python】python指南(五):静态类型注解之List
61 0
【python】python指南(五):静态类型注解之List
|
6月前
|
索引
【Qt 学习笔记】Qt常用控件 | 多元素控件 | List Widget的说明及介绍
【Qt 学习笔记】Qt常用控件 | 多元素控件 | List Widget的说明及介绍
680 3
|
6月前
|
测试技术 索引 Python
Python接口自动化测试框架(基础篇)-- 常用数据类型list&set()
本文介绍了Python中list和set两种数据类型的使用,包括它们的创建、取值、增删改查操作、排序以及内置函数的使用,还探讨了list的比较函数和set的快速去重功能。
44 0
|
7月前
|
消息中间件 JSON NoSQL
Redis深度解析:核心数据类型之hash、list、set
Redis深度解析:核心数据类型之hash、list、set