专题四:redis的数据类型之list
一、基本介绍
对于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的更多相关文章
- Redis常用数据类型
Redis常用数据类型 转载自:http://blog.sina.com.cn/s/blog_7f37ddde0101021q.html Redis最为常用的数据类型主要有以下五种: ●Str ...
- Redis的数据类型及相关操作命令
redis 基础内容 —— redis的数据类型及相关操作的Linux命令.所谓大厦千层基础承载,希望大家认真学习这一讲: 一.redis 的五大数据类型: 1.String(字符串): 2.List ...
- Redis 详解 (四) redis的底层数据结构
目录 1.演示数据类型的实现 2.简单动态字符串 3.链表 4.字典 5.跳跃表 6.整数集合 7.压缩列表 8.总结 上一篇博客我们介绍了 redis的五大数据类型详细用法,但是在 Redis 中, ...
- 一文搞定Redis五大数据类型及应用场景
本文学习知识点 redis五大数据类型数据类型:string.hash.list.set.sorted_set 五大类型各自的应用场景 @TOC 1. string类型 1-1 string类型数据的 ...
- Redis之Redis的数据类型
1.Redis的数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(无序集合)及ZSet(有序集合) 2.String(字符串) ...
- Redis常用数据类型及其存储结构(源码篇)
一.SDS 1,SDS源码解读 sds (Simple Dynamic String),Simple的意思是简单,Dynamic即动态,意味着其具有动态增加空间的能力,扩容不需要使用者关心.Strin ...
- Redis常用数据类型以及操作
Redis常用数据类型以及操作 目录 Redis常用数据类型以及操作 一.String数据类型 1. SET/GET/APPEND/STRLEN 2. INCR/DECR/INCRBY/DECRBY ...
- Redis常用数据类型介绍、使用场景及其操作命令
Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字 ...
- Redis笔记(三)Redis的数据类型
前面说过,Redis的一大特性是支持丰富的数据类型, 这为更多的应用场景提供了可能. Redis有五种数据类型,包括string,list,set,sorted set和hash,注意,Redis的数 ...
- Redis基本数据类型
-------------------Redis基本数据类型------------------- 1.String 字符串 1.概念 1.String 是redis最基本的类 ...
随机推荐
- JQuery实现tab页
用ul 和 div 配合实现tab 页 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="U ...
- Centos-跟踪数据传输路由状态-traceroute
traceroute 显示网卡数据包传输到指定主机的路径信息,追踪数据传输路由状况,默认数据包大小38字节 相关选项 -i 使用指定网络接口发送数据 -n 使用IP而不使用主机名 -v 显示命令的 ...
- Centos-上传下载文件-rz sz
依赖: ssh协议.远程终端 .lrzsz软件包.window操作系统 安装 lrzsz 软件包 yum install -y lrzsz 下载命令 sz sz fileName 上传命令 rz 相关 ...
- 温故知新——C++--封装
参考: 1.https://blog.csdn.net/cherrydreamsover/article/details/81942293 2.https://www.cnblogs.com/ji ...
- 微型直流电机控制基本方法 L298N模块
控制任务 让单个直流电机在L298N模块驱动下,完成制动.自由停车,正反转,加减速等基本动作 芯片模块及电路设计 图1 L298N芯片引脚 图2 L298N驱动模块 表1 L298N驱动模块的控制引脚 ...
- shell-批量修改文件名及扩展名多案例
1. 功能描述如下表: 批量文件改名案例实战: 问题1: 创建测试数据 [root@1-241 tmp]# for i in `seq 6`;do touch stu_161226_${i}_fin ...
- 在Linux命令行内的大小写转换
在编辑文本时大小写常常是需要注意的地方,大小写的转换是很枯燥而繁琐的工作,所幸,Linux 提供了很多能让这份工作变得容易的命令.接下来让我们看看都有哪些完成大小写转换的命令. tr 命令 tr (t ...
- 多测师讲解pthon _函数__return_高级讲师肖sir
#函数中的返回的作用(return) 案例: #函数中的返回的作用:def fun(): #定义的一个函数 num =100 a=num/2 #print(a) #50.0 return a # pr ...
- 【C++设计模式二】工厂模式
(1)定义3 简单工厂模式中,每新增一个具体产品,就需要修改工厂类内部的判断逻辑.为了不修改工厂类,遵循开闭原则,工厂方法模式中不再使用工厂类统一创建所有的具体产品,而是针对不同的产品设计了不同的工厂 ...
- day25 Pyhton学习 MD5加密.日志
一.MD5加密 MD5是一种不可逆的加密算法. 它是可靠的. 并且安全的. 在python中我们不需要手写这一套算法. 只需要引入一个叫hashlib的模块就能搞定MD5的加密工作 import ha ...