1. 程式人生 > >redis list ( 連結串列 )

redis list ( 連結串列 )

list型別其實就是一個雙向連結串列。通過push,pop操作從連結串列的頭部或者尾部新增刪除元素。 這使得list既可以用作棧,也可以用作佇列

上進上出是 棧 ,特點:資料 先進後出

在這裡插入圖片描述

下進上出是 佇列,特點:資料 先進先出

在這裡插入圖片描述

從時間複雜度的角度來看,Redis列表主要的特性就是支援時間常數的 插入和靠近頭尾部元素的刪除,即使是需要插入上百萬的條目。 訪問列表兩端的元素是非常快的,但如果你試著訪問一個非常大 的列表的中間元素仍然是十分慢的,因為那是一個時間複雜度為 O(N) 的操作。

你可以用Redis列表做許多有趣的事,例如你可以:

1.在社交網路中建立一個時間線模型,使用LPUSH去新增新的元素到使用者時間線中,使用 LRANGE去檢索一些最近插入的條目。 2.你可以同時使用LPUSH和LTRIM去建立一個永遠不會超過指定元素數目的列表並同時記住最後的N個元素。 3.列表可以用來當作訊息傳遞的基元(primitive),例如,眾所周知的用來建立後臺任務的Resque Ruby庫。 4.你可以使用列表做更多事,這個資料型別支援許多命令,包括像BLPOP這樣的阻塞命令。請檢視所有可用的列表操作命令獲取更多的資訊。