Redis系列教程(五):Redis常用命令 - list
关于java中的list:ArrayList和LinkedList
Redis操作中,最多的操作是进行元素的增删,所以Redis选取了链表,效率高
Redis中list命令的使用环境:
- 做大数据集合的增删
- 任务队列(程序运行流程按顺序进行)
一、list常用命令
1、赋值【两端添加】
(1)lpush key value1 value2 value3 …
- 在指定的key所关联的list的头部插入所有的values,如果在key不存在,该命令在插入之前创建一个与该key关联的空链表,之后再向该链表的头部插入数据。插入成功,返回元素的个数
- 注意:此时链表中的元素顺序为d c b a
(2)rpush key value1 value2 value3 …
- 在该list的尾部添加元素
- 此时链表中的元素顺序为a b c d
2、取值【查询元素】
(1)lrange key start end
- 获取链表中从start到end的元素的值,start、end从0开始计数,也可以为负数,若为-1则表示链表尾部的元素,-2则表示倒数第二个,依次类推…
3、弹出【两端删除】
(1)lpop key
- 返回并弹出指定的key关联的链表中的第一个元素,即头部元素。如果该key不存在,返回nil;若key存在,则返回链表的头部元素
(2)rpop key
- 从尾部弹出元素
二、list扩展命令
1、llen key
- 返回指定key关联的链表的元素个数
2、lrem key count value :删除count个值为value的元素
- 如果count大于0,从头向尾遍历并删除count个值为value的元素;
- 如果count小于0,则从尾向头遍历并删除;
- 如果count等于0,则删除链表中所有等于value的元素
3、lset key index value :通过索引替换元素
- 设置链表中的index的脚标的元素值,0代表链表的头元素,-1代表链表的尾元素。操作链表的脚标不存在则抛出异常
4、linsert key before|after pivot value :在索引前/后插入元素
- 在pivot元素前或后插入value这个元素
5、rpoplpush resource destination
- 将链表中的尾部元素弹出并添加到头部【循环操作】
- 使用场景:任务队列、循环队列