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

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

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

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

队列

队列是先进先出的数据结构,常用于消息排队和异步逻辑处理,它会确保元素的访问顺序性。
redis(四)之redis基础数据结构list

栈是先进后出的数据结构,跟队列正好相反。拿Redis的列表数据结构来做栈使用的业务场景并不多见。
redis(四)之redis基础数据结构list

lindex

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

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

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