数据类型:List

List目录

list是redis提供的"列表"数据类型, 就类似于我们使用过的链表, 支持头部操作和尾部操作, 不支持随机访问, 如果随机操作某个下标, 时间复杂度为O(N)。

list的底层数据结构是quicklist。 quicklist是双向链表和压缩列表(ziplist)的结合体。 每一个quicklist节点就是一个压缩列表。

Lpush和Rpush

复制代码
lpush key value [value...]
rpush key value [value...] 
  • lpush和rpush都是向key所在的键值对的值中插入数据。 lpush代表头插, rpush代表尾插。
  • 可以同时插入多个数据。
  • O(1) , 其实应该是插入数据的个数

Lpop和Rpop

复制代码
lpop key
rpop key
  • lpop和rpop都是从key对应的值中弹出数据, lpop代表头删, rpop代表尾删。
  • O(1)

Llen

复制代码
llen key
  • 获取key的值的长度。
  • 这里的llen的第一个l代表的意思是list。 而lpush中的l代表的是left。
  • O(1)

Lindex

复制代码
lindex key index
  • 获取某个值的某个下标处的数据。
  • index为要获取的位置下标, 下标从0开始。
  • O(N)

Lset

复制代码
lset key index value
  • 将对应的值的某个下标处的数据修改成value
  • index为要修改的值的位置下标, 下标从0开始;value为修改后的值。
  • O(N)

Lrange

复制代码
lrange key start end
  • 获取对应的值的start 到end的值。 下标从0开始。
  • 如果end为 -1, 则代表最后一个位置, -2代表倒数第二个位置。
  • O(N)

Ltrim

复制代码
ltrim key start end
  • 将对应的值截取,只剩余start 到end之间的值。下标从0开始。
  • 如果end为 -1, 则代表最后一个位置, -2代表倒数第二个位置。
  • O(N)

blpop和brpop

复制代码
blpop key [key ...] timeout
brpop key [key ...] timeout 
  • 对多个key进行删除。
  • blpop和brpop为阻塞删。只有当后面的key中有至少一个成功删除了数据, 才会返回,否则一直阻塞。
  • timout为阻塞时间, 必须设置,否则报错。
相关推荐
独自破碎E20 分钟前
判断链表是否为回文
数据结构·链表
lied16636348062 小时前
List导出到Excel文件
servlet·list·excel
liu****4 小时前
8.list的模拟实现
linux·数据结构·c++·算法·list
武帝为此7 小时前
【B树与B+树详解】
数据结构·b树
南莺莺7 小时前
邻接矩阵的基本操作
数据结构·算法··邻接矩阵
观望过往7 小时前
【Java数据结构】队列详解与经典 OJ 题目实战
java·数据结构
aramae8 小时前
详细分析平衡树--红黑树(万字长文/图文详解)
开发语言·数据结构·c++·笔记·算法
CHEN5_028 小时前
【leetcode100】和为k的子数组(两种解法)
java·数据结构·算法
guguhaohao10 小时前
list,咕咕咕!
数据结构·c++·list
Code小翊10 小时前
希尔排序基础理解
数据结构·算法·排序算法