一、基本介绍

对于list,它的存储需求是什么呢?对于string,讲究单个,hash也不讲究大量;当我们需要存储多个数据的时候,前面的数据类型就不大合适了。

  • 数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行访问
  • 需要的存储结构:一个存储空间保存多个数据,且通过数据可以体现存储顺序
  • list类型:保存多个数据,底层使用双向链表存储结构实现。

常见的几种结构对比:

顺序表:读取快,插入慢

链表:读取慢,插入快,显得不紧凑

对redis来说,采用双向链表,可以构建双向操作的场景,有顺序的概念。redis用于于具有操作先后顺序的数据控制;

二、基本操作

功能 命令 其他说明
添加修改数据

lpush key value1 value2...

rpush key value1 value2...

lpush是往左添加,rpush是往右添加;

返回list中元素的个数

获得数据

lrange key start stop

lindex key index

llen key

注意索引是从0开始的;比方说有3个元素,我们的命令

应该是:lrang list1 0 2;如果不知道具体有多少个,可以

使用:lrang list1 0 -1

是的,反着查,-1代表最后一个元素

llen key返回长度

获取并删除数据

lpop key 

rpop key

返回拿出来的元素

三、扩展操作

3.1 阻塞数据获取

功能 命令 其他说明
规定时间内获取并移除数据

blpop key [key2] timeout

brpop key [key2] timeout

相对前面的lpop,b代表的是block,阻塞的意思的意思是现在没有,

不代表将来没有,可以等,等多久呢,timeout(单位秒);

只要有,就立马取出来;

多个key的意思是,只有其中一个key有,就取;

这里就可以联想到我们任务队列的实现

3.2 移除指定数据

案例:微信朋友圈点赞,要求按照点赞顺序显示好友的昵称

key:朋友圈的ID   value:点赞朋友列表

如果取消点赞,移除对应好友信息

功能 命令 其他说明
移除指定数据 lrem key count value

rang的意思是:list的元素是可以重复的,移除的时候可以指定移除多个,

当然这里移除点赞好友也只会有一个了;返回成功删除元素的个数

四、注意事项

  • list中保存的数据都是string类型的,数据总容量是有限的,最多2^32 - 1个元素
  • list具有索引的概念,但是通常操作数据时以队列的形式进行入队出队的操作,或者以栈的形式进行入栈出栈的操作
  • 获取全部数据操作结束锁应设置为-1
  • list可以对数据进行分页操作,通常第一页的信息来源于list,第二页及更多页信息通过数据库的形式加载

这一节就到这里,下一节写数据类型之set。

专题四:redis的数据类型之list的更多相关文章

  1. Redis常用数据类型

    Redis常用数据类型 转载自:http://blog.sina.com.cn/s/blog_7f37ddde0101021q.html     Redis最为常用的数据类型主要有以下五种: ●Str ...

  2. Redis的数据类型及相关操作命令

    redis 基础内容 —— redis的数据类型及相关操作的Linux命令.所谓大厦千层基础承载,希望大家认真学习这一讲: 一.redis 的五大数据类型: 1.String(字符串): 2.List ...

  3. Redis 详解 (四) redis的底层数据结构

    目录 1.演示数据类型的实现 2.简单动态字符串 3.链表 4.字典 5.跳跃表 6.整数集合 7.压缩列表 8.总结 上一篇博客我们介绍了 redis的五大数据类型详细用法,但是在 Redis 中, ...

  4. 一文搞定Redis五大数据类型及应用场景

    本文学习知识点 redis五大数据类型数据类型:string.hash.list.set.sorted_set 五大类型各自的应用场景 @TOC 1. string类型 1-1 string类型数据的 ...

  5. Redis之Redis的数据类型

    ​1.Redis的数据类型     Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(无序集合)及ZSet(有序集合)  2.String(字符串)    ...

  6. Redis常用数据类型及其存储结构(源码篇)

    一.SDS 1,SDS源码解读 sds (Simple Dynamic String),Simple的意思是简单,Dynamic即动态,意味着其具有动态增加空间的能力,扩容不需要使用者关心.Strin ...

  7. Redis常用数据类型以及操作

    Redis常用数据类型以及操作 目录 Redis常用数据类型以及操作 一.String数据类型 1. SET/GET/APPEND/STRLEN 2. INCR/DECR/INCRBY/DECRBY ...

  8. Redis常用数据类型介绍、使用场景及其操作命令

    Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字 ...

  9. Redis笔记(三)Redis的数据类型

    前面说过,Redis的一大特性是支持丰富的数据类型, 这为更多的应用场景提供了可能. Redis有五种数据类型,包括string,list,set,sorted set和hash,注意,Redis的数 ...

  10. Redis基本数据类型

    -------------------Redis基本数据类型------------------- 1.String 字符串     1.概念         1.String 是redis最基本的类 ...

随机推荐

  1. Spring Boot 系统启动任务定义

    前言 系统任务:在项目启动阶段要做一些数据初始化操作,这些操作有一个共同的特点,只在项目启动时进行,以后都不再执行. 应用场景:例如配置文件加载,数据库初始化等操作 Spring Boot出现之前 解 ...

  2. Struts2+Spring4.2+Hibernate4.3整合

    一.导包 antlr-2.7.7.jarasm-3.3.jarasm-commons-3.3.jarasm-tree-3.3.jarcom.springsource.com.mchange.v2.c3 ...

  3. .net网站自动化部署-致两年前的遗留的问题

    又到一年国庆,终于有了难得的几天空闲,计划陪陪媳妇娃子,再把最近阅读的几本相关书总结梳理下.当然,计划总是美好的,于时接到了一个老朋友电话.大意是他搞了一个.net小网站,部署了4个节点,每次更新程序 ...

  4. 基于ASP.NET Core 3.x的端点路由(Endpoint Routing)实现控制器(Controller)和操作(Action)分离的接口服务

    本文首发于 码友网 -- <基于ASP.NET Core 3.x的端点路由(Endpoint Routing)实现控制器(Controller)和操作(Action)分离的接口服务> 前言 ...

  5. 手把手教你安装TensorFlow2 GPU 版本

    参考博客:https://blog.csdn.net/weixin_44170512/article/details/103990592 (本文中部分内容引自参考博客,请大家支持原作者!) 感谢大佬的 ...

  6. Hadoop理论基础

    Hadoop是 Apache 旗下的一个用 java 语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台.允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理.   特性:扩 ...

  7. 2014年 实验四 B2B模拟实验(二)

    [实验目的] ⑴.熟悉电子合同签订过程 ⑵.掌握网上招标的流程并体会招标对采购商带来的好处 [实验条件] ⑴.个人计算机一台 ⑵.计算机通过局域网形式接入互联网 ⑶.电子商务模拟实验室软件包. [知识 ...

  8. Rust之路(3)——数据类型 下篇

    [未经书面同意,严禁转载] -- 2020-10-14 -- 架构是道,数据是术.道可道,非常道:术不名,不成术!道无常形,术却可循规. 学习与分析数据类型,最基本的方法就是搞清楚其存储原理,变量和对 ...

  9. hugo主题文档-manpassant

    +++ date="2020-10-17T10:32:00+08:00" title="hugo主题文档manpassant" tags=["hugo ...

  10. nginx安全:配置ssl证书(https证书)

    一,配置https证书的意义 https协议是由SSL+http协议构建的安全协议,支持加密传输和身份认证, 安全性比http要更好,因为数据的加密传输,更能保证数据的安全性和完整性 例如:不使用ht ...