命令 | 含义 |
---|---|
rpush key value1 [value2...] | 在列表后侧添加一个或多个值 |
lpush key value1 [value2...] | 在列表左侧添加一个或多个值 |
linsert key before/after value newValue | 在列表指定的value前/后插入newValue,时间复杂度为O(n) |
lpop key | 从列表左侧弹出一个值 |
rpop key | 从列表右侧弹出一个值 |
lrem key count value | 根据count值,从列表中删除值为value的项,时间复杂度为O(n)。count > 0 时,从左往右遍历,删除最多count个与value相等的值;count < 0 时,从右往左遍历,删除最多Math.abs(count)个与value相等的值;count = 0 时,删除所有与value相等的值 |
trim key start end | 对一个列表进行修剪,只保留指定区间内的元素,不在区间内的元素都将被删除,时间复杂度为O(n) |
lrange key start end | 获取列表指定索引范围的所有元素,时间复杂度为O(n) |
lindex key index | 获取列表指定索引的元素,时间复杂度为O(n) |
llen key | 获取列表长度,时间复杂度为O(1) |
lset key index newValue | 设置列表指定索引的值为newValue,时间复杂度为O(n)。必须存在这个值才能设置成功,否则会报错 |
blpop key timeout | 移除并获取列表左边第一个元素,如果列表没有元素会阻塞直到等待超时或可弹出元素为止。timeout单位为秒,timeout=0时不阻塞 |
brpop key timeout | 移除并获取列表右边第一个元素,如果列表没有元素会阻塞直到等待超时或可弹出元素为止。timeout单位为秒,timeout=0时不阻塞 |
时间轴功能(TimeLine)
使用 lpush 更新,rpop、lpop 删除,lrange 做排序分页等。类似微博的发布信息流。
当我们想实现一些功能的时候,可以结果各种命令组合使用。