【Redis存储】List列表

列表类型是用来存储多个有序的字符串,列表中的每个字符串称为元素。在 Redis 中,可以对列表两端插入(push)和弹出(pop),还可以获取指定范围的元素列表、 获取指定索引下标的元素等。列表是一种比较灵活的数据结构,它可以充当栈和队列的角色,在实际开发上有很多应用场景。

列表类型的特点:

1,列表中的元素按插入顺序排列,支持下标访问。元素的位置由插入顺序决定(先插的在前,后插的在后),不会自动排序。

2,列表中的元素是允许重复的。

3,List 底层是双向链表,支持从「表头(left)」和「表尾(right)」双向进行增删操作,核心命令(LPUSH/LPOP、RPUSH/RPOP)的时间复杂度均为 O (1),效率极高。

1,常见命令

  • LPUSH:将一个或者多个元素从左侧放入(头插)到 list 中。
  • LPUSHX:在 key 存在时,将一个或者多个元素从左侧放入(头插)到 list 中。不存在,直接返回。
  • RPUSH:将一个或者多个元素从右侧放入(尾插)到 list 中。
  • RPUSHX:在 key 存在时,将⼀个或者多个元素从右侧放入(尾插)到 list 中。
  • LRANGE:获取从 start 到 end 区间的所有元素,左闭右闭。
  • LPOP:从 list 左侧取出元素(即头删)。
  • RPOP:从 list 右侧取出元素(即尾删)。
  • LINDEX:获取从左数第 index 位置的元素。
  • LINSERT:在特定位置插入元素。
  • LLEN:获取 list 长度。
  • BLPOP:LPOP的阻塞版本。
  • BRPOP:RPOP的阻塞版本。

在列表中有元素的情况下,阻塞和非阻塞表现是⼀致的。但如果列表中没有元素,非阻塞版本会返回nil,但阻塞版本会根据自定义的 timeout (单位:秒。0秒表示永久阻塞),阻塞⼀段时间,期间 Redis 可以执行其他命令,但要求执行该命令的客户端会表现为阻塞状态。

LPUSH key element element ...

LPUSHX key element element ...

RPUSH key element element ...

RPUSHX key element element ...

LRANGE key start stop

LPOP key

RPOP key

LINDEX key index

LINSERT key <BEFORE | AFTER> pivot element // BEFORE 表示在目标元素之前插入,AFTER 表示在之后插入;pivot目标元素(列表中需存在该元素,否则插入失败返回-1);element 是要插入的新元素.

LLEN key

BLPOP key key ... timeout

BRPOP key key ... timeout

2,内部编码

列表类型的内部编码有两种:

ziplist(压缩列表):当列表的元素个数小于 list-max-ziplist-entries 配置(默认 512 个),同时,列表中每个元素的长度都小于 list-max-ziplist-value 配置(默认 64 字节)时,Redis会选用 ziplist 来作为列表的内部编码实现来减少内存消耗。

linkedlist(链表):当列表类型无法满足 ziplist 的条件时,Redis 会使用 linkedlist 作为列表的内部实现。

相关推荐
Blossom i1 小时前
大数据预处理与采集实验一:使用Python操作MySQL数据库
数据库·mysql
雾时之林2 小时前
Linux--软件管理、源码包安装
linux·服务器·数据库
thesky1234563 小时前
智能体面试准备(二十六):Agent 成本工程——模型路由、缓存、预算控制与大小模型分工
缓存·llmops·智能体·模型路由·成本工程·预算控制·小模型分工
老纪的技术唠嗑局4 小时前
超级干货分享:中小企业使用 OceanBase 实践经验汇总
数据库
CLOUD ACE4 小时前
谷歌云代理|零售商Target 如何利用 Spanner Graph 提升零售发现体验并将数据库维护成本降低 50%
数据库·零售
AI大模型-小雄4 小时前
Codex写分页接口为什么越翻越慢?用Cursor Pagination解决重复与漏数据
大数据·数据库·elasticsearch·搜索引擎·chatgpt·后端开发·codex
少晓年5 小时前
从 MySQL 迁移到人大金仓 KingbaseES:完整指南与实践
数据库·mysql
SelectDB5 小时前
Apache Doris AI RAG 实战:从基础 RAG 到知识图谱增强的技术能力与选型
数据库
SelectDB6 小时前
电商企业 PostgreSQL 迁移 Apache Doris:80TB 分析数据统一平台技术能力与实践
数据库
SelectDB6 小时前
阶跃星辰 Agent 可观测:Apache Doris / SelectDB 的技术能力与实践
数据库