2.8列表
特点 重要api 实战 查缺补漏
列表结构
后期补充列表结构图
特点
有序
可以重复
左右两边插入弹出
常用命令
增
命令
说明
时间复杂度
rpush key value1 value2 ...valueN
从列表的右端插入值(1~N个)
O(1~N)
lpush key value1 value2 ... valueN
从列表的左端插入值(1~N个)
O(1~N)
linsert key before|after value newValue
在list指定的值前|后插入new Value
O(n)
删
命令
说明
时间复杂度
lpop key
从列表左边弹出一个item
O(1)
rpop
从列表右边弹出一个item
O(1)
lrem key count value
根据count值,从列表中删除所有value相等的项 (1)count>0,从左到右,删除最多count个值为value的项 (2)count(3)count=0,删除所有值为value的项
O(n)
ltrim key start end
按照索引范围{start,end}修剪列表
O(n)
查
命令
说明
时间复杂度
lrange key start end
获取列表指定索引范围{start,end}的item
O(n)
lindex key index
获取列表指定索引的item
O(1)
llen key
获取列表长度
O(1)
改
命令
说明
时间复杂度
lset key index newValue
设置列表指定索引值为newValue
O (n)
其他
命令
说明
时间复杂度
blpop key timeout
lpop阻塞版本,timeout是阻塞超时时间,timeout=0为永远不阻塞
O(1)
brpop key timeout
rpop阻塞版本,timeout是阻塞超时时间,timeout=0为永远不阻塞
O(1)
TIPS-使用列表实现其他数据结构
LRUSH + LPOP = Stack
LPUSH + RPOP = Queue
LPUSH + LTRIM =Capped Collection
LPUSH + BRPOP = Message Queue
Last updated
Was this helpful?