Navicat Blog

Redis List:概述 2023 年 8 月 14 日,由 Robert Gravelle 撰寫

在最近的 文章 中,我們簡單介紹了 Redis 的六種資料類型。其中 Redis List 包含一組字串,並以字串被加入的順序排序。本文將深入了解 List 資料類型,並重點介紹一些用於管理它們的主要命令。

List 的效能

在 Redis 中,值得注意的是,List 是一個連結列表。它是一種由多個節點組成的資料結構,每個節點包含資料欄位以及指向列表中下一個節點的「next」參考(連結):

linked_list (5K)

這種結構對效能有一些重要的影響。在 List 的頭部和尾部加入元素會很快,但是尋找 List 中的元素會較慢,因為我們無法像在陣列中那樣對元素進行索引存取。

建立 List

Redis 的 RPUSH 和 LPUSH 命令都可以用來建立 List。這兩個命令都包含推送資料,並在其後加上鍵名稱。如果鍵不存在,命令將傳回一個傳遞參數作為元素的新 List。如果鍵已經存在或者它不是一個 List,則會傳回一個錯誤。

RPUSH

RPUSH 命令在 List 的後面(尾部)插入一個新元素:

RPUSH key value [value ...]

我們會建立一個「guitars」鍵,代表吉他品牌的一個 List:

RPUSH guitars "Jackson" // 1
RPUSH guitars "Fender"  // 2
RPUSH guitars "Gibson"  // 3

每次插入一個元素時,Redis 都會傳回插入後 List 的長度。在執行上述三個陳述式之後,guitars 鍵將包含以下三個元素:

Jackson Fender Gibson

LPUSH

LPUSH 與 RPUSH 類似,只是它在 List 的前面(頭部)插入元素:

LPUSH key value [value ...]

我們可以使用 LPUSH 命令在 guitars 列表的前面插入一個新值,如下所示:

LPUSH guitars "Ibanez" //4

現在我們有四把吉他,以「Ibanez」開頭:

Ibanez Jackson Fender Gibson

在 Navicat 中建立 List

Navicat for Redis 編輯器中,List 值表示為「元素」。按一下元素右側的省略號 [...] 按鈕會開啟一個特殊的編輯器,你可以在其中輸入一個 List 元素:

guitars_list_in_navicat_editor (66K)

按一下「套用」按鈕會加入新的 List 或元素。

加入 List 或元素後,可以使用上箭頭和下箭頭按鈕變更元素在 List 中的位置。

使用 LRANGE 命令擷取 List 項目

LRANGE 命令根據指定的起始索引和停止索引傳回 List 的子集:

LRANGE key start stop

我們可以指定開始索引和停止索引值為 0 和 -1 來查看完整的 List:

LRANGE guitars 0 -1 
//returns Ibanez Jackson Fender Gibson

與此同時,以下命令擷取 List 中的前兩個吉他品牌:

LRANGE guitars 0 1 
//returns Ibanez Jackson

從 List 中移除元素

LPOP 命令移除並傳回 List 的第一個元素,而 RPOP 命令移除並傳回 List 的最後一個元素。以下是一些範例:

LPOP guitars //returns Ibanez 
RPOP guitars //returns Gibson 

在 Navicat 編輯器中,可以選取任何 List 元素並按一下元素值下面的「刪除 [-]」按鈕來移除它。

delete_button_in_navicat_editor (30K)

總結

本文重點介紹了使用 redis-cli 和 Navicat for Redis 管理 Redis List 所用到的一些主要命令。

如果你想試用 Navicat for Redis,可以 在此 下載試用版。試用版具備完整功能,試用期為 14 天。

Navicat Blogs
Feed Entries
Blog Archives
Share