数据类型: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为阻塞时间, 必须设置,否则报错。
相关推荐
shehuiyuelaiyuehao9 小时前
算法56,重排链表
数据结构·算法·链表
suhan11 小时前
【数据结构】七、查找:1.查找的概念、线性结构查找(顺序、折半(二分)、插值、稠密、分块、倒排)
数据结构·算法·排序算法
极客 - L U11 小时前
卡尔曼滤波从零到精通
c语言·数据结构·单片机·嵌入式硬件·mcu
Sarvartha13 小时前
栈的四则运算、栈的递归应用
数据结构·算法
GG.WinGel16 小时前
三元组中心问题
java·数据结构·算法·青少年编程·蓝桥杯
程序员清风16 小时前
缓存、索引与数据结构的工程选择
数据结构·spring·缓存
爱吃火鸡面呀17 小时前
Doris 数据划分实战:List 分区、分桶列与桶数选择
数据结构·list
BK贝壳1 天前
亿级用户签到位图选型复盘:用 bool-hybrid-array 扛冷启动打卡,也把它和 Roaring/Redis 的边界测清楚了
数据结构·python·性能优化·numpy
挖井观天1 天前
《Java数据结构》第一讲:顺序表
数据结构
炘爚1 天前
数据结构算法总结
数据结构·python·算法