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. 分页展示的文章列表
相关推荐
愿你天黑有灯下雨有伞37 分钟前
从数据库到播放器:Java视频续播功能完整实现解析
java·数据库·音视频
码观天工1 小时前
从 Redis 客户端超时到 .NET 线程池挑战:饥饿、窃取与阻塞的全景解析
redis·线程池·线程饥饿
中文很快乐1 小时前
postgreSQL的sql语句
数据库·sql·postgresql
DBWYX2 小时前
Doris
数据库
Dubhehug2 小时前
8.数据库索引
数据库·mysql·索引·索引分类·索引优缺点
是2的10次方啊2 小时前
Redis进阶之路:从缓存小白到架构师的完整指南
redis
满分观察网友z2 小时前
告别CRUD Boy!SQL子查询:从头疼到真香的进化之路
数据库·后端
赤鸢QAQ2 小时前
Qt小组件 - 2(布局)瀑布流布局,GridLayout,FlowLayout
开发语言·数据库·qt
♡喜欢做梦3 小时前
【MySQL】索引
数据库·mysql
····懂···3 小时前
如何成为 PostgreSQL 中级专家
数据库·postgresql