Navicat Blog

Redis Set 的快速指南 2023 年 9 月 8 日,由 Robert Gravelle 撰寫

Redis 支援多種資料類型以儲存項目集,包括列表(list)、集合(set)和雜湊(hash)。上週的文章介紹了 List 資料類型,並重點介紹了管理 List 的主要命令。在今天的後續文章中,我們將把注意力轉向 Set 類型。在Redis中,Set 類似於 List,但 Set 不保留元素的任何特定順序,並且每個元素必須是唯一的。本文將介紹使用 redis-cli 和 Navicat for Redis 管理 Set 的一些主要命令。

建立 Set

在 Redis 中,我們可以使用 SADD 命令建立 Set,該命令會將指定成員加入鍵中:

SADD key member [member ...]

如前所述,每個元素必須是唯一的。因此,已經是 Set 一部分的指定成員將被忽略。如果鍵不存在,命令將建立一個新的 Set 並加入唯一的指定成員。如果鍵已經存在或不是 Set,則傳回一個錯誤。

以下是建立「vehicles」集合的命令:

SADD vehicles "Infiniti"         // 1
SADD vehicles "Mazda"            // 1
SADD vehicles "Ford" "Mercedes"    // 2
SADD vehicles "Porsche" "Mercedes" // 1

請注意,SADD 命令會傳回該陳述式加入成員的數量,而不是 Set 的大小。我們可以看到最後一行只加入了一個元素,因為「vehicles」集合已經有一個「Mercedes」值。

在 Navicat 中建立 Set

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

vehicles_set_in_navicat_editor (69K)

按一下「套用」按鈕會加入新的 Set 或元素。Navicat 會自動移除重複值。

從 Set 中移除成員

我們可以使用 SREM 命令從 Set 中移除成員:

SREM key member [member ...]
SREM vehicles "Mazda" "Mercedes" // 2
SREM vehicles "Dodge" // 0

SREM 與 SADD 命令類似,它會傳回已移除的成員數量。

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

delete_button_in_navicat_editor (25K)

驗證值是否存在

我們可以使用 SISMEMBER 命令驗證成員是否是 Set 的一部分:

SISMEMBER key member

如果成員是 Set 的一部分,此命令會傳回 1;否則,傳回 0:

SISMEMBER vehicles "Infiniti" // 1
SISMEMBER vehicles "Alfa Romeo" // 0

檢視 Set

我們可以使用 SMEMBERS 命令顯示 Set 中的所有成員:

SMEMBERS key

讓我們看看目前在「vehicles」集合中的所有成員:

SMEMBERS vehicles
// returns "Infiniti", "Ford", "Porsche"

合併多個 Set

我們可以使用 SUNION 命令很容易地合併多個 Set:

SUNION key [key ...]

SUNION 命令的每個引數表示我們要合併到較大 Set 中的 Set。請注意,為了保持元素的唯一性,命令會移除任何重複的成員。

假設有另一個名為 more_vehicles 的 Set,其中包含「Corvette」和「Alfa Romeo」值。我們可以按以下方式檢視 vehicles 和 more_vehicles 的所有成員:

SUNION vehicles more_vehicles
// "Infiniti", "Ford", "Porsche", "Corvette", "Alfa Romeo"

總結

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

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

Navicat Blogs
Feed Entries
Blog Archives
Share