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. 分页展示的文章列表
相关推荐
kirs_ur1 小时前
ECC & LDPC — SSD 的数据卫士
服务器·数据库·性能优化
是三一seven1 小时前
Sql注入基础
数据库·安全·网络安全
Sirens.2 小时前
MySQL表设计进阶-约束范式连接索引与事务
android·数据库·mysql
字节跳动开源3 小时前
火山引擎开源 Agent 驱动的搜索自迭代技术
数据库·开源·agent
Oo大司命oO5 小时前
藏在正则表达式里的陷阱
数据库·mysql·正则表达式
_oP_i6 小时前
mysql统计数据库使用存储大小
数据库
会编程的土豆6 小时前
MySQL 入门:库、表、行、主键是什么
linux·数据库·网络协议·http
jjjava2.06 小时前
系统日志:从入门到精通的完整指南
网络·数据库
写代码的强哥7 小时前
云原生数据库与传统数据库相比“新”在哪里
数据库·云原生·架构