list 特点
- 有序
- 可以重复
- 左右两边插入弹出
list 基本命令
rpush key value1 value2 ... valueN
lpush key value1 value2 ... valueN
linsert key before|after value newValue
-
lpop key
O(1) -
rpop key
O(1) -
lrem key count value
O(n)- count > 0,从左到右,删除最多 count 个 value 相等的项;
- count < 0,从右到左,删除最多 Math.abs(count) 个 value 相等的项;
- count = 0,删除所有 value 相等的项;
-
ltrim key start end
O(n) -
lrange key start end
O(n) -
lindex key index
O(n) -
llen key
O(1) -
lset key index newValue
O(n) blpop key timeout
brpop key timeout
实战
- 时间线上的数据就可以维护在 list 中;