redis(四)之redis基础数据结构list

Redis的列表相当于Java语言里面的LinkedList,注意它是链表而不是数组。这意味着list的插入和删除操作非常快,时间复杂度为O(1),但是索引定位很慢,时间复杂度为O(n),这点让人非常意外。列表中的每个元素都是使用双向指针顺序,穿起来可以同时支持向前向后遍历。

当列表弹出了最后一个元素之后,该数据结构被自动删除,内存被回收。

Redis的列表结构常用来做异步队列使用。将需要延后处理的额任务结构体序列化成字符串,塞进Redis的列表,另一个线程从这个列表中轮询数据进行处理。

队列

队列是先进先出的数据结构,常用于消息排队和异步逻辑处理,它会确保元素的访问顺序性。
在这里插入图片描述

栈是先进后出的数据结构,跟队列正好相反。拿Redis的列表数据结构来做栈使用的业务场景并不多见。
在这里插入图片描述

lindex

lindex相当于Java链表的get(int index)方法,它需要对链表进行遍历,性能随着参数index增大而变差。

index可以为负数,index -1表示倒数第一个元素,同理index-2表示倒数第二个元素。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40351478/article/details/88606395