一、Redis 列表(List)
List是一个链表结构,主要功能是push、pop、获取一个范围所有值等,操作中key理解为链表的名字。Redis的list类型是一个每个元素都为string类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list即可以作为栈(先进后出),又可以作为对列(先进先出)。
一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。
二、Redis 列表命令
注:下列指令索引从0开始
命令 | 描述 |
---|---|
LPUSH key value1 [value2] | 列表头部插入一个或多个值 |
LRANGE key start stop | 获取列表指定范围内的元素(从头开始取),若stop=-1代表最后一个元素 |
LINSERT key BEFORE,AFTER pivot value | 在列表的元素前或者后插入元素 |
LSET key index value | 通过索引设置列表元素的值 |
LREM key count value | 移除列表count个相同元素,(count<0从尾删除,n=0全部删除) |
LTRIM key start stop | 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。若stop=-1代表最后一个元素 |
LLEN key | 获取列表长度 |
LPOP key | 列表头部移除并获取该元素 |
LINDEX key index | 通过索引获取列表中的元素 |
LPUSHX key value | 将一个值插入到已存在的列表头部 |
RPUSH key value1 [value2] | 列表尾部插入一个或多个值 |
RPOP key | 列表尾部移除并获取该元素 |
RPOPLPUSH source destination | 从第一个list的尾部移除元素并添加到第二个list的头部 |
RPUSHX key value | 将一个值插入到已存在的列表尾部 |
BLPOP key1 [key2 ] timeout | 列表头部移除并获取该元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止 |
BRPOP key1 [key2 ] timeout | 列表尾部移除并获取该元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止 |
BRPOPLPUSH source destination timeout | 从第一个list的尾部移除元素并添加到第二个list的头部, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止 |