標籤:redis 集合類型 集合 散列表
一、介紹
一個集合類型(set)鍵可以儲存至多2^32-1個字串。
集合類型在Redis內部是使用值為空白的散列表(hash table)實現的,所以操作的複雜度為O(1)。多個集合類型鍵之間還可以進行並集、交集和差集運算。
二、命令
1.增加/刪除元素
sadd key membersrem key member
sadd用來向集合中增加一個或者多個元素,如果鍵不存在則會自動建立。一個集合中不能有相同的元素,所以如果要加入的元素已經存在於集合中就會忽略這個元素。本命令的返回值是成功加入的元素數量。
第二條sadd命令返回2,因為a已經存在,實際上只加入兩個元素。
srem用來從集合中刪除一個或者多個元素,並返回刪除成功的個數,
由於d在集合中不存在,所以只刪除了一個元素,返回值為1.
2.獲得集合中的所有元素
smembers key
返回集合所有元素
3.判斷元素是否在集合中
sismember key member
時間複雜度O(1),無論有多少個元素。
4.集合之間運算
sdiff keysinter keysunion key
(1)sdiff差集運算,A-B,屬於A但不屬於B
sdiff支援同時傳入多個鍵
順序先計算setA-setB,再計算結果與setC的差集。
(2)sinter交集運算
sinter同樣支援同時傳入多個鍵。
(3)sunion並集運算。
sunion同樣支援同時傳入多個鍵。
三、命令拾遺
1.獲得集合中元素個數
scard key
2.進行集合運算並將結果儲存
sdiffstore destination keysinterstore destination keysunionstore destination key
和sdiff功能一樣,唯一區別前者不會直接返回運算結果,而是將結果儲存在destination鍵中。
3.隨機獲得集合中的元素
srandmember key [count]
count參數一次隨機獲得多個元素。
(1)count正數,獲得count個不重複的元素,當大於集合元素個數,返回集合全部元素
(2)count負數,絕對值個元素,可能相同。
4.從集合中彈出一個元素
spop key
從集合中隨機播放一個元素彈出。
Redis研究(六)—集合類型