Redis(五) 数据类型list

2020-03-29  本文已影响0人  honest涛

作者:毕涛涛,致力于Java学习的践行者。原创文章,转载请注明出处。

list(列表)

Redis的列表相当于Java语言里面的LinkedList,注意它是链表而不是数组。这意味着 list 的插入和删除操作非常快,时间复杂度为 O(1),但是索引定位很慢,时间复杂度为O(n),这点让人非常意外。
当列表弹出了最后一个元素之后,该数据结构自动被删除,内存被回收。
Redis的列表结构常用来做异步队列使用。将需要延后处理的任务结构体序列化成字符串塞进Redis的列表,另外一个线程从这个列表中轮询数据进行处理。

链表的基本操作

  • lpush 和 rpush 分别可以向list的左边(头部)和右边(尾部)添加一个新元素;
  • lrange 命令可以从list中取出一定范围的元素;
  • lindex 命令可以从list中取出指定下标的元素,相当于Java链表操作中的get(int index)操作;

先进先出:队列

队列是先进先出的数据结构,常用于消息排队和异步逻辑处理,它会确保元素的访问顺序。 队列.png

先进后出:栈

栈是先进后出的数据结构,跟队列正好相反: 栈.png

list列表的其他操作

  • \color{red}{lpush方法}:从头部加入元素(栈) 先进后出。
  • \color{red}{rpush方法}:从尾部加入元素(队列) 先进先出。
  • \color{red}{linsert方法}:插入元素。形如:linsert list3 before [集合的元素] [插入的元素]
  • \color{red}{lset方法}:将指定下标的元素替换掉。
  • \color{red}{lrem方法}:删除元素,返回删除的个数。
  • \color{red}{ltrim方法}:保留指定key的值范围内的数据。
  • \color{red}{lpop方法}:从list的头部删除元素,并返回删除元素。
  • \color{red}{rpop方法}:从list的尾部删除元素,并返回删除元素。
  • \color{red}{rpoplpush方法}:第一步从尾部删除元素,然后第二步并从头部加入元素。
  • \color{red}{lindex方法}:返回名称为key的list中index位置的元素。
  • \color{red}{llen方法}:返回元素的个数。
上一篇 下一篇

猜你喜欢

热点阅读