List-操作
常用
-
从右边插入元素
rpush key value [value ...] -
从左边插入元素
lpush key value [value ...] -
从右边弹出元素
rpop key -
从左边弹出元素
lpop key -
阻塞式右边弹出
brpop key [key ...] timeout- timeout仅列表为空时生效
- 若为n,则最多n秒后返回,中途如果有新值也会返回
- 若为0,则一直阻塞等待,直到有新值才返回
- 若多个客户端对同一个键并发执行,则最先执行的优先得到新值,其他继续阻塞
- timeout仅列表为空时生效
-
阻塞式左边弹出
blpop key [key ...] timeout -
删除指定值元素,可指定删除数量和方向
lrem key count value- 若count大于0,则 从左到右 删count个
- 若count小于0,则 从右到左 删abs(count)个
- 若count等于0,则删除所有
-
获取列表长度——复杂度O(1)
llen key
指定下标
-
下标取值
- 从左到右为 0 到 N-1
- 从右到左为 -1 到 -N
-
获取指定下标元素,复杂度为O(index)
lindex key index- 指定 1 获取最左边元素但不弹出
- 指定 -1 获取最右边元素但不弹出
-
修改指定下标元素,复杂度为O(index)
lset key index newValue -
获取指定下标范围内的元素
lrange key start end- 【注意】这里end是包含在内的
- 若全部获取,则指定 0 -1 即可
- 范围在两端时性能较好,中间效率较差
-
按照指定下标范围,裁剪列表
ltrim key start end- 【注意】这里end是包含在内的