1. 程式人生 > >Redis之Set

Redis之Set

inter key 通過 忽略 smo can members pos 交集

一、RedisSet簡介

1. SetString類型的無序集合(元素成員唯一)。

2. Set是通過hash表實現的,添加、刪除、查找的復雜度都是O(1)

3. 每個集合最大成員數為232-140多億)個。

二、RedisSet命令行操作

Sadd:將一個或多個元素加入集合,已經存在集合中的元素則忽略。若集合不存在則先創建,若key不是集合類型則返回錯誤。

Smembers:返回集合中所有成員。

Sismember:判斷指定元素是否是指定集合的成員,是返回1,否則返回0

Scard:返回集合中元素的數量。

技術分享圖片

Spop:移除並返回集合中的一個或多個隨機元素。(count不能為負數)

技術分享圖片

Srandmember:返回集合中的一個或多個隨機成員元素,返回元素的數量和情況由命令中的count參數決定:

1. 如果count為正數,且小於集合基數,那麽命令返回一個包含count個元素的數組,數組中的元素各不相同。

2. 如果count大於等於集合基數,那麽返回整個集合。

3. 如果count為負數,那麽命令返回一個數組,數組中的元素可能會重復出現多次,而數組的長度為count的絕對值。

SrandmemberSpop相似,但Spop將隨機元素從集合中移除並返回,而Srandmember則僅僅返回隨機元素,而不對集合進行任何改動。

技術分享圖片

Srem:移除集合中指定的一個或多個元素,忽略不存在的元素。

技術分享圖片

Sscan:叠代集合中的元素。

技術分享圖片

Smove:將指定成員從一個源集合移動到一個目的集合。相當於兩個操作,將指定元素從源集合中刪除,並加入目的集合中。若源集合不存在或不包含指定元素則不做任何操作。

技術分享圖片

下面介紹的差集、交集和並集都將使用以下三個集合來示例:

技術分享圖片

Sdiff:返回所有給定集合之間的差集,不存在的集合視為空集。

Sdiffstore:將所有給定集合之間的差集存儲在指定的目的集合中。若目的集合已存在則覆蓋它。

差集:第一個集合中有,其他集合沒有的元素。

技術分享圖片

Sinter:返回所有給定集合的交集,不存在的集合視為空集。

Sinterstore:將所有給定集合的交集存儲在指定的目的集合中。若目的集合已存在則覆蓋它。

技術分享圖片

Sunion:返回所有給定集合的並集,不存在的集合視為空集。

Sunionstore:將所有給定集合的並集存儲在指定的目的集合中。若目的集合已存在則覆蓋它。

技術分享圖片

Redis之Set