Redis五大数据类型中列表结构的深入解析与操作指南

四.1 Redis五大数据类型中列表结构的深度剖析与操作手册

目录

  • 四.1 Redis五种数据类型里列表结构的全面剖析与运用指引
    1. list列表常用指令详解
    2. 2.1 lpush/rpush <key><value1><value2><value3> .... 从左侧/右侧插入一个或多个值
    3. 2.2 lrange <key><start><stop> 按索引下标获取元素(从左至右)
    4. 2.3 lpop/rpop <key> 从左侧/右侧弹出一个值,对应列表对象的值会减少一个
    5. 2.4 rpoplpush <key1><key2><key1>列表右侧弹出一个值,插入到<key2>列表左侧
    6. 2.5 lrange mylist 0 -1 0是左侧第一个,-1是右侧第一个,(0-1表示获取所有)
    7. 2.6 lindex <key><index> 按索引下标获取元素(从左至右)
    8. 2.7 llen <key> 获取列表长度
    9. 2.8 linsert <key> before <value><newvalue><value>前面插入<newvalue>
    10. 2.9 linsert <key> after <value><newvalue><value>后面插入<newvalue>
    11. 2.10 lrem <key><n><value> 从左侧删除n个value(从左至右)
    12. 2.11 lset<key><index><value> 将列表key下标为index的值替换成value
    1. list对象的应用场景
    1. 结尾:

list:简而言之: list类型,存储多个数据,底层采用双向链表存储结构实现

list存储结构示意图:
双向链表示意图:
在这里插入图片描述

示意图说明:
1. Redis列表是简单的字符串列表,按插入顺序排序,可向列表头部(左侧)或尾部(右侧)添加元素。
2. 底层是双向链表,对两端操作性能高,通过索引下标操作中间节点性能较差。
3. 关于更多双向链表内容,可移步:🌟🌟🌟 双向循环带头节点链表 —— C语言_双向循环节点-
CSDN博客

关于list列表的命令,Redis中有如下这些:
在这里插入图片描述

此处我们介绍一些list列表较为常用的命令,然后,由此类推,依据文档也能对其他命令上手学习运用

2. list列表常用指令详解

2.1 lpush/rpush <key><value1><value2><value3> .... 从左侧/右侧插入一个或多个值

在这里插入图片描述

注意:同时会创建一个list对象

127.0.0.1:6379> lpush k9 "a" "b" "c"

在这里插入图片描述


在这里插入图片描述

127.0.0.1:6379> rpush k10 "a" "b" "c"

在这里插入图片描述

2.2 lrange <key><start><stop> 按索引下标获取元素(从左至右)

在这里插入图片描述

注意: lreage list 0 -1 即获取该list从开头到结尾的全部内容。

127.0.0.1:6379> lrange k10 0 -1
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> lrange k10 0 1

在这里插入图片描述

2.3 lpop/rpop <key> 从左侧/右侧弹出一个值,对应列表对象的值会减少一个

在这里插入图片描述

127.0.0.1:6379> lpop k9

在这里插入图片描述

注意: 列表的头元素。 当 key 不存在时,返回 nil

在这里插入图片描述


在这里插入图片描述

2.4 rpoplpush <key1><key2><key1>列表右侧弹出一个值,插入到<key2>列表左侧

在这里插入图片描述

127.0.0.1:6379> rpoplpush k9 k10

在这里插入图片描述

2.5 lrange mylist 0 -1 0是左侧第一个,-1是右侧第一个,(0-1表示获取所有)

2.6 lindex <key><index> 按索引下标获取元素(从左至右)

在这里插入图片描述

127.0.0.1:6379> lindex k10 1

在这里插入图片描述

2.7 llen <key> 获取列表长度

在这里插入图片描述

127.0.0.1:6379> llen k10

在这里插入图片描述

2.8 linsert <key> before <value><newvalue><value>前面插入<newvalue>

在这里插入图片描述

127.0.0.1:6379> linsert k9 before "b" "tom"

在这里插入图片描述

2.9 linsert <key> after <value><newvalue><value>后面插入<newvalue>

127.0.0.1:6379> linsert k9 after "b" "jack"

在这里插入图片描述

2.10 lrem <key><n><value> 从左侧删除n个value(从左至右)

在这里插入图片描述
在这里插入图片描述

127.0.0.1:6379> lrem k9 1 "b"

在这里插入图片描述
在这里插入图片描述

2.11 lset<key><index><value> 将列表key下标为index的值替换成value

在这里插入图片描述
在这里插入图片描述

注意:index 参数超出范围,或对一个空列表( key 不存在)进行 LSET 时,返回一个错误。

在这里插入图片描述

3. list对象的应用场景

redis中list对象应用于对有操作先后顺序的数据进行管控

  1. 系统通知,按时间顺序展示,将最新的通知列在前面。
    在这里插入图片描述

  2. 其他,比如微信的最近转发,微博的最新关注等。

4. 结尾:

“在这最后的部分,我要向每一位读者表达我的感激。你们的关注与回应是我创作的动力来源,我从你们身上汲取了无穷的灵感与勇气。我会把你们的鼓励铭记于心,继续在其他领域拼搏。感谢你们,我们定会在某个时刻再度相逢。”
在这里插入图片描述

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/12525.html

(0)
LomuLomu
上一篇 2025 年 6 月 18 日 下午5:38
下一篇 2025 年 6 月 18 日 下午6:24

相关推荐

  • DataGrip破解流程太复杂?这篇文章帮你理清思路

    声明:以下教程中涉及的 DataGrip 破解补丁与激活码均来自互联网公开资源,仅供个人学习研究,禁止商业用途。如条件允许,请支持正版! 先放一张“战果”:DataGrip 2025.2.1 已成功激活至 2099 年,爽! 接下来,用图文带你一步步搞定最新版 DataGrip 的激活流程。 嫌折腾?官方正版全家桶低至 32 元/年,一键登录即用:https…

    DataGrip激活码 2025 年 9 月 17 日
    22300
  • 2025年最新DataGrip激活码分享 | 永久破解教程(支持2099年)

    Jetbrains全家桶通用破解方案 本教程适用于DataGrip、PyCharm、IDEA、Goland等Jetbrains全系列产品,以下展示的是最新版DataGrip成功破解至2099年的效果图: 下面将详细介绍如何实现DataGrip永久激活,此方法同样兼容旧版本! 全平台支持:Windows/Mac/Linux均可使用 版本通用:新旧版本均适用 高…

    DataGrip激活码 2025 年 8 月 12 日
    41300
  • 2025年最新PyCharm激活码分享 | 永久破解PyCharm至2099年教程(支持Win/Mac/Linux)

    前言 本教程适用于JetBrains全家桶软件,包括PyCharm、IDEA、DataGrip、Goland等开发工具。下面先展示最新PyCharm版本成功破解到2099年的效果图: 本文将详细介绍如何通过简单几步操作,实现PyCharm的永久激活。该方法适用于所有操作系统(Windows/Mac/Linux)和各种版本,保证100%激活成功率! 第一步:获…

    PyCharm激活码 2025 年 7 月 8 日
    85500
  • IDEA激活码生成方式解析|附使用说明!

    免责声明:以下补丁与激活码均源自网络公开分享,仅限个人学习研究,禁止商业用途。若条件允许,请支持正版 JetBrains 全家桶! 先放一张“战绩图”——IDEA 2025.2.1 已成功解锁到 2099 年,爽翻! 下面用图文手把手带你完成最新版 IDEA 的激活之旅。嫌折腾?直接买官方正版,全家桶低至 32 元/年,登录即用:https://panghu…

    IDEA破解教程 2025 年 9 月 17 日
    14500
  • spring 事务失效的 12 种场景

    看这个:https://blog.csdn.net/hanjiaqian/article/details/120501741里面有12种失效场景以及如何解决。在 spring 中为了支持编程式事务,专门提供了一个类:TransactionTemplate,在它的 execute 方法中,就实现了事务的功能。 相较于@Transactional注解声明式事务,…

    2025 年 1 月 6 日
    64400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信