redis之集合型別(set)

2021-07-09 03:57:15 字數 1618 閱讀 3868

redis集合是乙個無序的字串合集。你可以以o(1) 的時間複雜度(無論集合中有多少元素時間複雜度都為常量)完成 新增,刪除以及測試元素是否存在的操作。

redis集合有著不允許相同成員存在的優秀特性。向集合中多次新增同一元素,在集合中最終只會存在乙個此元素。實際上這就意味著,在新增元素前,你並不需要事先進行檢驗此元素是否已經存在的操作。

乙個redis列表十分有趣的事是,它們支援一些服務端的命令從現有的集合出發去進行集合運算。 所以你可以在很短的時間內完成合併(union),求交(intersection), 找出不同元素的操作。

乙個集合最多可以包含232-1個元素(4294967295,每個集合超過40億個元素)。

下面,來列舉乙個簡單的例子:

#我新增乙個名為家庭的集合(我和我妻子)

> sadd family biki zhibin

(integer) 2

#顯示我的家庭成員列表

> smembers family

1) "biki"

2) "zhibin"

#顯示我家庭成員的數量

> scard family

2#判斷我是否是家庭的成員之一

> sismember family zhibin

(integer) 1

如下表顯示與​​排序集的一些基本命令:

s.n.

命令& 描述

1sadd key member1 [member2...]

新增乙個或多個成員到集合,新增成功返回1,成員已經存在或失敗則返回0

2smembers key

得到的集合的所有成員

3sinter key [key ...]

返回乙個給定集合的交集

4smove source destination member

將member元素從source集合移動到destination集合。

5sunion key [key ...]

返回乙個集合的全部成員,該集合是所有給定集合的並集。

6scard key

返回集合的基數

7sinterstore destination key [key ...]

此命令等同於sinter,但它將結果儲存到destination集合,而不是簡單地返回結果集。

8spop key

移除並返回集合中的乙個隨機元素。

9sunionstore destination key [key ...]

此命令等同於sunion,但它將結果儲存到destination集合,而不是簡單地返回結果集。

10sdiff key [key ...]

返回第乙個給定集合和其他所有給定集合的差集 。

11sismember key member

判斷member元素是否是集合的成員。

12srandmember key

返回集合中的乙個隨機元素。

13sdiffstore destination key [key ...]

此命令等同於sdiff,但它將結果儲存到destination集合,而不是簡單地返回結果集。

14srem key member

移除集合中的member元素。

Redis(六)set集合型別

set集合和list列表十分的相似,都可以儲存多個字串。但是list列表可以儲存重複值,而set集合中不可重複。一 集合資料結構 其中的user為鍵名,其可以包含多個 不重複 的元素,各不相同 user camellia1 camellia2 camellia3 二 操作命令 這裡分兩種,linux...

redis之set集合操作

sadd key members1 members2 向集合中新增乙個元素 smembers key 返回集合中所有的元素 當元素比較多的時候伺服器壓力會比較大 sismember key members 檢查key這個集合中 members 元素是否存在 srem key member 刪除元素中...

redis命令之集合(set)

一 常用命令 1 sadd set key item item 說明 將乙個或多個元素新增到set key中,返回新增成功的個數1 smembers set key說明 獲取set key中所有元素,如果set key儲存的不是乙個集合,返回乙個錯誤。2 sismember set key item...