时间: 2020-07-23 14:24:24
列表 List#
类似于数组,支持从列表的左右两侧存取数据,取数据的时候支持阻塞操作。列表的下标从0开始,负数表示。
RPOPLPUSH 源列表和目的地列表指定同一个列表可以用于实现循环列表。
RPOPLPUSH 消费者先从源列表获取数据进行处理,同时放入备份队列,处理完成之后从本分队列删除。
List 常用命令:#
| 命令 | 语法 | 描述 | 返回值 |
|---|---|---|---|
| LPUSH | LPUSH key value1 [value] |
把数据放入列表左侧 | 插入之后列表的长度 |
| LPUSHX | LPUSHX key value |
当列表存在的时候,把数据放入列表左侧 | 插入之后列表的长度 |
| RPUSH | RPUSH key value1 [value] |
把数据放入列表右侧 | 插入之后列表的长度 |
| RPUSHX | RPUSHX key value |
当列表存在的时候,把数据放入列表右侧 | 插入之后列表的长度 |
| LLEN | LLEN key |
查看列表的长度 | 列表的长度 |
| LINDEX | LINDEX key index |
返回index位置的数据 | 列表 index 位置的数据,越界返回空 |
| LSET | LSET key index value |
设置 index 位置的值 | OK 设置成功,越界报错 |
| LRANGE | LRANGE key start end |
返回 [start,end] 范围内的数据,如果start的实际位置小于end的位置将返回空 | 列表范围内的数据 |
| LINSERT | LINSERT key [BEFORE|AFTER] value insert_value |
在指定值前面或后面插入数据 | 插入数据之后列表的长度 |
| LPOP | LPOP key |
删除列表左边第一个元素,并返回 | 列表左边第一个元素,或空 |
| BLPOP | BLPOP key timeout |
删除列表左边第一个元素,并返回,当源列表没有数据时阻塞,阻塞时间为timeout |
列表左边第一个元素,或空 |
| RPOP | RPOP key |
删除列表右边第一个元素,并返回 | 列表右边第一个元素,或空 |
| BRPOP | BRPOP key timeout |
删除列表右边第一个元素,并返回,当源列表没有数据时阻塞,阻塞时间为timeout |
列表右边第一个元素,或空 |
| LPOS | LPOS key element [count c] [rank r] |
返回元素的坐标。count表示数量,rank表示第一个,rank小于零从右边开始查找 | 返回元素的坐标 |
| LREM | LREM key count element |
从列表中删除count个指定元素, count > 0从左边开始,count < 0 从右边开始删除,count = 0 删除全部 |
删除的元素个数 |
| LTRIM | LTRIM key start end |
删除指定范围外的元素 | 删除是否成功 |
| RPOPLPUSH | RPOPLPUSH source destination |
从源列表删除一个元素, 放到目标列表 | 移动的元素 |
| BRPOPLPUSH | BRPOPLPUSH source destination timeout |
从源列表删除一个元素, 放到目标列表,当源列表没有数据时阻塞,阻塞时间为timeout |
移动的元素 |