Redis常用数据类型--List

List

常用命令

LPUSH/RPUSH

将⼀个或者多个元素从左侧(头插) / 右侧(尾插)放入到 list 中

sql 复制代码
LPUSH key element [element ...]/RPUSH key element [element ...]

时间复杂度:只插⼊⼀个元素为 O(1), 插⼊多个元素为 O(N), N 为插⼊元素个数

LPUSHX/RPUSHX

在 key 存在时,将⼀个或者多个元素从左侧(头插) / 右侧(尾插)到 list 中。不存在,直接返回

sql 复制代码
LPUSHX key element [element ...]

时间复杂度:只插⼊⼀个元素为 O(1), 插⼊多个元素为 O(N), N 为插⼊元素个数

LRANGE

获取从 start 到 end 区间的所有元素,左闭右闭

sql 复制代码
LRANGE key start stop

时间复杂度:O(N)

LPOP/RPOP

从 list 左侧 / 右侧取出元素

sql 复制代码
LPOP key / RPOP key

时间复杂度:O(1)

LINDEX

获取从左数第 index 位置的元素

sql 复制代码
 LINDEX key index

时间复杂度:O(N)

LINSERT

在特定位置插⼊元素

sql 复制代码
LINSERT key <BEFORE | AFTER> pivot(具体数字) element

时间复杂度:O(N)

LLEN

获取 list ⻓度

sql 复制代码
LLEN key

时间复杂度:O(1)

BLPOP/BRPOP

LPOP / RPOP的阻塞版本

sql 复制代码
 BLPOP key [key ...] timeout /  BRPOP key [key ...] timeout

时间复杂度:O(1)

内部编码

基于双向链表的快速列表(quicklist):快速列表是Redis 3.2引入的一种数据结构,它是一种优化的双向链表,每个节点使用 ziplist 相邻节点使用链表相连

典型应用场景

  1. 消息队列
  2. 分页展示的文章列表
相关推荐
Bioinfo Guy1 小时前
高分Panel复现系列|转录因子网络太乱?用模块框把重点圈出来
数据库·生物信息学·生信可视化
ltl2 小时前
Disaggregated DB 合集:Socrates、PolarDB、Taurus 的共同模式
数据库
Blossom i4 小时前
大数据预处理与采集实验一:使用Python操作MySQL数据库
数据库·mysql
雾时之林5 小时前
Linux--软件管理、源码包安装
linux·服务器·数据库
老纪的技术唠嗑局7 小时前
超级干货分享:中小企业使用 OceanBase 实践经验汇总
数据库
CLOUD ACE7 小时前
谷歌云代理|零售商Target 如何利用 Spanner Graph 提升零售发现体验并将数据库维护成本降低 50%
数据库·零售
AI大模型-小雄7 小时前
Codex写分页接口为什么越翻越慢?用Cursor Pagination解决重复与漏数据
大数据·数据库·elasticsearch·搜索引擎·chatgpt·后端开发·codex
少晓年8 小时前
从 MySQL 迁移到人大金仓 KingbaseES:完整指南与实践
数据库·mysql
SelectDB8 小时前
Apache Doris AI RAG 实战:从基础 RAG 到知识图谱增强的技术能力与选型
数据库
SelectDB9 小时前
电商企业 PostgreSQL 迁移 Apache Doris:80TB 分析数据统一平台技术能力与实践
数据库