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

  • 将链表中的尾部元素弹出并添加到头部【循环操作】
  • 使用场景:任务队列、循环队列

猜你喜欢

转载自blog.csdn.net/xxujia/article/details/81676245