【地铁上的Redis与C#】数据类型(七)--List类型
创始人
2024-05-13 05:02:15
0

我们这篇文章开始讲解list类型。

什么是list

list是一个存储空间保存多个数据,底层使用双向链表存储结构实现的一种Redis数据类型,。list类型一般用在存储多个数据,并需要对数据进入存储空间的顺序进行区分的情况下。list的存储方式是一个存储空间保存多个数据,且可以通过数据可体现出数据进入的顺序。
前面提到了双向链表,那么我们就在这里简单的学一下与双向两边类似的另外两种数据结构顺序表链表

  1. 顺序表
    顺序表的结构如下图所示
    在这里插入图片描述
    从上图我们可以看出来,顺序表中数据与数据之间是紧密连接的,因此它能很快的检索数据,但是如果要在某个位置插入一个 新的数据就会很耗时,这是因为要插入新数据的位置的数据及其后面所有数据都要后移一位。
  2. 链表
    链表的结构如下图所示
    在这里插入图片描述
    上图中的黄色部分是存储的数据,绿色部分是指向下一个数据存储位置的指针。这种结构解决了前面我们提到的顺序表所遇到的问题,每次插入新数据时只需要将上一个数据的指针指向新插入数据的位置,并将下一个数据的位置写入到当前写入数据的指针中。但是这种存储结构也存在问题,因为数据与数据之间的间距不同,因此查询数据会慢一些,并且每个数据都要额外的存储指向下一个数据位置的指针,这就增加了内存的开销。同时再插入数据时,因为要更改插入位置的前一个数据指针指向的位置,因此要遍历内存找到前一个数据并修改指针指向的地址,因此对内存的开销也很大。
  3. 双向链表:
    双向链表的结果如下图所示
    在这里插入图片描述
    双向链表比链表多存储了前一个数据位置的指针(图中紫色部分),它解决了链表插入耗内存的问题。

list基本操作

了解完list的相关知识,我们来看一下list的基本操作指令。

  1. 添加/修改数据
    当我们需要对数据进行 添加修改时,可以使用lpushrpush指令,这两个指令都可以对数据进行添加数据,唯一的区别是,lpush表示从list的左侧添加数据而rpush表示从list的右侧添加数据。以lpush为例,语法是这样的(rpush语法相同)lpush key value1 value2 … valuen,例如我们向name中插入“anna”、“jack”,我们可以这么编写指令lpush name anna jack
  2. 获取数据
    获取数据时可以使用lpush指令,语法是这样的lpush key start stop,其中start表述获取数据的起始位置,stop表获取数据的结束位置,例如我们要获取car的第1个到第4个的数据,我们可以这么编写指令lpush car 0 3。如果要获取从起始位置到结尾的全部数据,那么我们可以将stop设置为-1。当然如果只需要获取某个数据我们可以使用lindex,语法是这样的lindex key index,index表示要获取的元素的位置,例如要获取car中的第五个数据,指令这么编写lindex car 4。在开发中有时我们需要获取list中存储的数据的总数,这是我们可以llen指令,语法是llen key
  3. 获取并移除数据
    当我们需要获取数据并删除数据时可以使用lpoprpop指令,这两个指令的区别是一个是从左侧获取并删除,另一个是从右侧获取并删除。以lopo为例,当我们需要获取car中的第一个数据时,我们可以这么编写指令lpop car

总结

这篇文章我们讲解了list类型和list的基本操作。

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...