Redis系列(四)、数据类型之列表List

Redis 教程系列之Redis 数据类型(四) Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。 阅读详情

目录

介绍

命令行模式

增

删

改

查

应用

栈:先进后出

队列:先进先出

有限集合

消息队列


Redis支持五种数据类型:String, Hash, List, Set, ZSet,这个系列介绍一下如何使用这些数据类型,本篇介绍使用命令行模式以及python客户端对redis进行操作,实际项目的过程中也大多是一模一样的用法。

相关内容:

Redis系列(一)、CentOS7下安装Redis6.0.3稳定版

Redis系列(二)、数据类型之字符串String 

Redis系列(三)、数据类型之哈希Hash

------------------------Redis列表类型----------------------

介绍

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

因此也有项目直接使用redis做消息队列,我们之前介绍filebeat+logstash+redis的时候也使用redis存储filebeat采集的日志进redis的列表类型中,由logstash从其中消费,传送门。

 

命令行模式

进入命令行模式:

redis-cli -a password_value

redis-cli -a password_value --raw
--raw 避免中文显示乱码

 

help

使用下面的命令查看手册:

help @list

增

lpush

从左边插入元素,从左边依次追加进栈,先进后出,后进先出:

LPUSH key element [element ...]

lpush mylist 'wyk'
lpush mylist '28' 'csdn' 'wyk@csdn.com'

rpush

从右边插入元素,从右边依次追加进队列,先进先出,后进后出:

RPUSH key element [element ...]

rpush mylist2 'wyk'
rpush mylist2 '28' 'csdn' 'wyk@csdn.com'

 

lpushx

与sting类型中的nx类似,只有当list存在时才会从左边依次追加元素:

LPUSHX key element [element ...]

 

rpushx

与lpushx类似,只有当list存在时才会从右边依次追加元素:

RPUSHX key element [element ...]

linsert

从list中指定的元素的前/后 插入一个新元素:

LINSERT key BEFORE|AFTER pivot element

 

删

lrem

从列表左侧开始移除count个指定的元素,返回删除的个数:

LREM key count element

lrem mylist2 1 wyk
lrem mylist2 2 new_val
lrem mylist2 3 new_val2

 

改

lset

根据下标修改元素内容,下标从左边算起,以0开始:

LSET key index element

ltrim

将原列表截取为从下标start到下标stop闭区间的列表,即原列表变为一个第start+1个到第stop+1个元素的列表:

LTRIM key start stop

 

查

llen

查看列表中元素的个数:

LLEN key

lrange 

根据起止下标查询列表元素,负数表示从后往前,跟python里一样:

LRANGE key start stop

lrange key 0 -1 #表示查看全部元素
lrange key -1 -1 #表示查看最右边的元素

 

lindex

根据指定的index下标查看列表中的元素,下标从0开始:

LINDEX key index

 

lpop

从左边消费列表中的元素,消费完之后从列表中删除:

LPOP key

rpop

从右边消费列表中的元素,消费完之后从列表中删除:

RPOP key

rpoplpush

消费列表A的最右边的元素返回,然后追加到列表B的最左边:

RPOPLPUSH source destination

RPOPLPUSH List_A List_B

blpop

从列表中左侧查询元素,返回列表的key和左侧第一个元素,若所有查询的列表中都没有元素,则会阻塞等待至设置的timeout秒之后返回空,若在这期间,这些列表新增了元素,则会立刻消费并返回该元素:

BLPOP key [key ...] timeout

brpop

与blpop类似,区别是brpop从右侧消费:

BRPOP key [key ...] timeout

brpoplpush

结合brpop和lpush,阻塞消费并将消费到的元素添加至target列表的最左侧:

BRPOPLPUSH source destination timeout

应用

栈:先进后出

lpush + lpop

队列:先进先出

lpush + rpop

有限集合

lpush + ltrim

消息队列

lpush + brpop

 

Python客户端与命令行函数基本上完全一致,篇幅太长因此不再过多的展示。

希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!

Redis 哈希(Hash)、列表(List)、集合(Set) Redis提供了多种数据结构类型:哈希(Hash)用于存储对象,支持40亿键值对,包含HSET、HGET等命令管理字段值;列表(List)是字符串的有序集合,支持从头部/尾部添加元素,包含LPUSH、LRANGE等操作命令;集合(Set)是字符串的无序唯一集合,查找复杂度O(1),包含SADD、SMEMBERS等成员操作命令。各类型最大可存储2^32-1个元素,适用于不同数据存储场景。 阅读详情

相关推荐

【复现论文】Looking here or there? Gaze Following in 360-Degree Images

论文:Looking here or there?

RichardoMu的博客 1131

【Redis】Redis 列表 List 操作 ( 查询操作 | 根据下标获取元素 | 获取列表长度 | 增操作 | 插入值 | 删操作 | 移除值 | 修改操作 | 设置列表指定索引的值 )

一、List 列表简介 二、查询操作 1、根据下标获取元素 2、获取指定下标索引的元素 3、获取列表长度 三、增操作 1、插入值 2、在指定元素前后插入值 四、删操作 1、移除值 2、删除列表指定个数的指定值 五、修改操作 1、多列表操作 2、设置列表指定索引的值

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 2万+

《UE4游戏开发》之 《音效系统的实现》

音效系统需要负责管理什么事情: 1.1 确定声音控制的分类:如背景音乐、技能音效、界面音效、角色配音等,不同游戏对声音有不同的分类 1.2 控制每个分类的声音的开启与关闭,以及调节每个分类声音的大小 解决如何分类: 2.1 首先需要知道ue4为声音分类提供了什么:SoundClass通常需要一个根分类【SC_RPG_Master】,便于总体控制音效,以及指定引擎默认启动的音效 打开SoundClass资产【SC_RPG_Master】,对根控制的设置,将逐级传递并按比例进行设置,以此达到控制一类声音的目的.

qq_21919621的博客 2126

redis常用命令

redis命令参考里面描述的很详细。

zjg 9827

【全球人口数据集】全球人口密度数据集GPWv4

全球人口密度数据集GPWv4

WW、forever的博客 1003

AI上推荐 之 协同过滤

㐇

Miracle8070 1万+

redis 怎么样查看list

在 Redis CLI 中,可以直接结合。查看列表的内容和长度。返回列表中元素的数量。

博格斯特的博客 2136

Visual Studio Code + MCP Server + Claude Code 三件套进行 ABAP 开发

本文介绍了如何在Visual Studio Code中利用Claude Code和SAP官方提供的MCP Server进行ABAP开发。作者分享了19年ABAP开发经验,从手动编码到如今通过自然语言生成高质量代码的技术演进。详细说明了配置步骤:启用ADT MCP Server、安装Claude Code扩展、配置.claude.json文件,并验证MCP Server的14个功能。通过实例演示了如何用自然语言指令让Claude Code创建包含冒泡排序实现和单元测试的ABAP类,展示了MCP Server在

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1299

Redis的list数据类型——Redis

lpush(头插)rpush(尾插) lrange(获取指定下标元素) lpop(删除头结点) rpop(删除尾结点) lindex(获取下标值) llen(获取长度) lrem(删除所有指定值) ltrim(截取元素) lset(修改指定元素) linsert(插入大指定元素的前或后) ...

mankeywang的博客 865

使用CubeMX配置STM32H7的FreeRTOS

本文将介绍如何使用CubeMX配置STM32H7的FreeRTOS,并提供相应的源代码示例。通过使用CubeMX,你可以轻松地配置FreeRTOS和系统资源,并生成相应的初始化代码和配置文件。在"FreeRTOS"选项卡的"Tasks"部分,可以配置系统中的任务。首先,打开CubeMX软件。在"FreeRTOS"选项卡的"Resources"部分,你可以配置FreeRTOS使用的资源,例如,堆内存和信号量。例如,我们可以创建两个简单的任务,一个任务将在循环中切换LED的状态,另一个任务将通过串口打印消息。

JeeVue的博客 712

SOC、SOH、OCV

1)放电实验法的测量SOH结果最为准确,但是深度放电会对影响电池的寿命;2)电阻折算法仅将电阻作为评价SOH的依据,但电池老化时电阻的变化范围较小,因此该方法的误差较大;3)电阻折算法需要对电池进行大量的实验,绘制成Map图,但是该方法有一定的局限性,针对不同的电池需要绘制不同的Map图;4)阻抗分析法是目前最为前沿的方法,可以根据阻抗谱较为直观的分析SOH的变化,但是该方法需要的成本较高,每台设备约为5万美元。

m0_61973119的博客 2万+

【Redis】redis 存储的列表如何分页和检索

在 Redis 中,列表(List)是一种有序的数据结构,通常用于存储一系列元素。由于列表是有序的,可以通过索引来访问元素,因此可以很方便地实现分页和检索功能。

No8g攻城狮的博客 3046

BLDC控制实验:方波、霍尔、开环、定速、正转

本文记录博主学习BLDC控制软件的过程。 文章目录1 概述2 软件架构及工具链2.1 软件架构2.2 工具链3 底层代码生成3.1 时钟配置3.2 按键输入配置 1 概述 本文是博主第一次做BLDC控制实验,目的仅仅是写代码让BLDC转起来,而暂时不考虑其他复杂的需求。 控制的方法是比较简单的六步换相法。利用电机内部的霍尔传感器,通过参考电机厂家给出的二二导通换相表,生成方波来控制电机。第一次实验为了简化需求,只考虑开环、定速、正转的情况: 开环:不考虑速度反馈,直接给PWM让电机转起来; 定速:不考虑速

u013288925的博客 1万+

element排序类型_Redis系列(四)、数据类型之列表List

Redis支持五种数据类型:String, Hash, List, Set, ZSet,这个系列介绍一下如何使用这些数据类型,本篇介绍使用命令行模式以及python客户端对redis进行操作,实际项目的过程中也大多是一模一样的用法。相关内容:Redis系列(一)、CentOS7下安装Redis6.0.3稳定版Redis系列(二)、数据类型之字符串StringRedis系列(三)、数据类...

weixin_36479862的博客 262

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【Redis篇】 List 列表

【Redis篇】 List 列表

chaodddddd的博客 3256

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Redis 数据类型:List 列表的深度解析与应用

Redis 中的 List 类型是一种灵活的数据结构,其功能类似于编程语言中的数组或顺序表,但其内部实现更接近于双端队列 (deque)。这使得在列表的头部和尾部进行元素的插入和删除操作都非常高效。有序性:列表中的元素是按照插入顺序排列的。可重复性:与 Set 不同,List 允许存储重复的元素。高效的头尾操作:通过 lpush、rpush、lpop 和 rpop 等命令,可以快速地在列表两端添加或移除元素,因此常被用作栈或队列。

2301_80863610的博客 8929

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Redis五大数据类型——List列表

Redis五大数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set:有序集合)。 一、介绍 列表(list)用于存储多个有序的字符串。可以充当栈和队列的角色 一般有序会采用数组或者是双向链表,其中双向链表由于有前后指针实际上会很浪费内存。 二、操作命令 操作类型 命令 添加 rpush、lpush、linsert 修改 lset 删除 lpop、rp...

祝我飞黄腾达 1万+

Redis 数据类型 List 列表

列表类型是⽤来存储多个有序的字符串,如下图所⽰,a、b、c、d、e 五个元素从左到右组成了⼀个有序的列表,列表中的每个字符串称为元素(element),⼀个列表最多可以存储 2^32 - 1个元素。在 Redis 中,可以对列表两端插⼊(push)和弹出(pop),还可以获取指定范围的元素列表、获取指定索引下标的元素等。列表是⼀种⽐较灵活的数据结构,它可以充当栈和队列的⻆⾊,在实际开发上有很多应⽤场景。:List 是一个有序的字符串集合,元素的顺序由插入顺序决定。

2301_79881188的博客 1246

redis—List列表

redis—List列表详解

终为nullptr 4169

redis 数据类型新手练习系列——List类型

redis 数据类型Redis 主要支持以下几种数据类型:(1)string(字符串): 基本的数据存储单元,可以存储字符串、整数或者浮点数。(2)hash(哈希):一个键值对集合,可以存储多个字段。(3)list(列表):一个简单的列表,可以存储一系列的字符串元素。(4)set(集合):一个无序集合,可以存储不重复的字符串元素。(5)zset(sorted set:有序集合): 类似于集合,但是每个元素都有一个分数(score)与之关联。

hnlucky的博客 1076

Redis之List数据类型

Redis中的List是一种有序字符串集合,支持双端操作(头尾插入/删除)。3.0版本采用ZIPLIST编码(紧凑内存结构)存储短字符串(<64B)且元素少于512个的列表,其特点是包含长度字段和前后向指针,但可能引发连锁更新问题(O(n^2)最坏复杂度)。7.0版本引入LISTPACK优化结构,通过独立长度字段(emelent-tot-len)消除prevlen依赖,避免连锁更新,保持O(n)平均操作效率。两种编码均通过特定字段实现快速遍历,其中LISTPACK的改进使数据变更更稳定高效。

2301_79737596的博客 1235

Redis数据类型--List类型详解及应用

概述:list类型可以存储一个有序的字符串列表,为了方便理解我把他类比于于Java中的LinkedList(双向链表),既然是链表,那就可以链表两端快速插入或删除,因为是双向链表结构,就注定了查询较慢。Redis无论什么数据类型,存储的时候都是以键值对key-value形势存储,并且所有的key都是String类型,本文讨论的数据类型是value的数据类型。如有不正确的地方请各位指出纠正。

weixin_42118323的博客 2748

快速入门Redis系列(2)——Redis的数据类型详解

        作为快速入门Redis系列的第二篇博客,本篇为大家介绍的是Redis的数据类型。         码字不易,先赞后看! 文章目录1. redis的数据类型1.1 redis 当中对字符串string的操作1.2 redis...

大数据梦想家 1万+

Redis数据结构-List列表

列表类型适用于存储多个有序的字符串(这里的有序指的是强调数据排列顺序的重要,不是升序降序的意思),列表中的每个字符串称为元素(element),一个列表最多可以存储2^32-1个元素。

2301_76928097的博客 1572

Redis数据类型

Redis介绍 RedisObject的结构 1. type 2. enconding 3. lru 4. refcount 5. *prt Redis源码结构 1. 基本数据结构 2. Redis数据类型的底层实现 3. Redis数据库的实现 4. Redis服务端和客户端实现 5. 其他 Redis数据类型 String List Set Zset Hash Stream Bloom Filter Bitmap HyperLogLog Geospatial 使用场景 使用示例

骑个小蜗牛的博客 5158

四.1 Redis 五大数据类型/结构的详细说明/详细使用(List 列表数据类型详解和使用)

在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。

weixin_61635597的博客 896
上一篇: Redis系列(三)、数据类型之哈希Hash
下一篇: Redis系列(五)、数据类型之无序集合Set
王义凯_Rick
王义凯_Rick 领域专家: 大数据技术领域 领域专家: 大数据技术领域
博客等级 码龄14年 858粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王义凯_Rick

遇见即是缘,路过就给个评论吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值