数据类型-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,最后就没有元素了。可以去测试双向进入然后再取出。

相关文章
|
4月前
|
NoSQL Redis 索引
③【List】Redis常用数据类型: List [使用手册]
③【List】Redis常用数据类型: List [使用手册]
52 0
|
6月前
|
存储 NoSQL Redis
Redis之List类型解读
Redis之List类型解读
|
7月前
|
消息中间件 存储 NoSQL
【Redis从头学-5】Redis中的List数据类型实战场景之天猫热销榜单
【Redis从头学-5】Redis中的List数据类型实战场景之天猫热销榜单
181 0
|
3月前
|
Java 程序员
Java集合框架:List、Set、Map类型及泛型详解
Java集合框架:List、Set、Map类型及泛型详解
|
20天前
|
索引 Python
Python标准数据类型-List(列表)
Python标准数据类型-List(列表)
42 1
|
1月前
|
存储 NoSQL Java
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
54 0
|
8月前
|
Java
Java——把list转为List<clazz>类型
Java——把list转为List<clazz>类型
|
4月前
|
SQL IDE Java
MyBatis【问题 01】mapper传入array\collection\list类型的参数时报BindingException:Parameter ‘xx‘ not found问题复现及解决
MyBatis【问题 01】mapper传入array\collection\list类型的参数时报BindingException:Parameter ‘xx‘ not found问题复现及解决
55 0
|
4月前
|
XML Java 数据格式
spring怎么去引用/注入集合/数组类型和 怎么通过 util 名称空间创建 list以及 怎么去通过级联属性赋值
spring怎么去引用/注入集合/数组类型和 怎么通过 util 名称空间创建 list以及 怎么去通过级联属性赋值
30 0