数据类型: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为阻塞时间, 必须设置,否则报错。
相关推荐
smj2302_796826528 小时前
解决leetcode第3943题递增后的数对数量
数据结构·python·算法·leetcode
梓䈑10 小时前
【算法题攻略】快速排序 和 归并排序
数据结构·c++·排序算法
he___H12 小时前
leetcode100-普通数组
java·数据结构·算法·leetcode
不知名的老吴13 小时前
经典算法实战:重新排列日志文件(二)
数据结构·算法
CS创新实验室13 小时前
数据结构和算法:斐波那契堆
数据结构·算法·斐波那契堆
guslegend15 小时前
2.Redis核心数据结构
数据结构·数据库·redis
Daydream.V15 小时前
Redis 零基础入门到实战:数据结构 + 常用命令 + 场景全覆盖
数据结构·数据库·redis
bnmoel15 小时前
数据结构深度剖析二叉树・中篇:堆的概念及结构 ,实现应用全解析
数据结构·算法·二叉树··top-k问题
fu的博客15 小时前
【数据结构15】哈夫曼树构建、编码(附手绘图解)
数据结构
bnmoel15 小时前
数据结构深度剖析二叉树・上篇:基础概念、结构特性、存储结构全解析
c语言·数据结构·二叉树·