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. 分页展示的文章列表
相关推荐
Leo.yuan15 小时前
不同数据仓库模型有什么不同?企业如何选择适合的数据仓库模型?
大数据·数据库·数据仓库·信息可视化·spark
麦兜*15 小时前
MongoDB 6.0 新特性解读:时间序列集合与加密查询
数据库·spring boot·mongodb·spring·spring cloud·系统架构
chat2tomorrow15 小时前
数据采集平台的起源与演进:从ETL到数据复制
大数据·数据库·数据仓库·mysql·低代码·postgresql·etl
稻草人想看远方15 小时前
关系型数据库和非关系型数据库
数据库
考虑考虑15 小时前
Postgerssql格式化时间
数据库·后端·postgresql
千里码aicood16 小时前
【springboot+vue】党员党建活动管理平台(源码+文档+调试+基础修改+答疑)
java·数据库·spring boot
TDengine (老段)16 小时前
TDengine 选择函数 Max() 用户手册
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
驾驭人生16 小时前
Asp .Net Core 系列:Asp .Net Core 集成 Hangfire+MySQL
数据库·mysql·.netcore
xhbh66616 小时前
不止是DELETE:MySQL多表关联删除的JOIN语法实战详解
数据库·mysql·程序员·mysql删除语句