Redis Set

Set數組

數學集合,元素自動過濾重複功能,不會保存元素添加順序。豐富的數學集合操做,交集、並集,差集,尤爲是判斷是否包含 contains,很是高效。rem

 

一、基本操做(CURD)數學

>sadd key value[value ...]io

將一個或多個 value元素加入到集合 key 當中,已經存在於集合的 value元素將被忽略。List

 

>spop key遍歷

移除並返回集合中的一個隨機元素。若是隻想獲取一個隨機元素,但不想該元素從集合中被移除的話,能夠使用 srandmember 命令。nio

 

>srem key value [ value...]ember

移除集合 key 中的一個或多個 value 元素,不存在的 value 元素會被忽略。集合

 

>scard key移動

返回集合 key 的基數(集合中元素的數量),scard 是數學上一個求集合個數的運算符號。

 

>smembers key

返回集合 key 中的全部成員。不存在的 key 被視爲空集合,若是元素不少可能致使IO阻塞,最好使用的scan進行批量獲取,而不是獲取所有。

 

>srandmember key [count]

只提供了 key 參數,那麼返回集合中的一個隨機元素。

count 爲正數,且小於集合基數,那麼命令返回一個包含 count 個元素的數組,數組中的元素各不相同。若是 count 大於等於集合基數,那麼返回整個集合。

count 爲負數,那麼命令返回一個數組,數組中的元素可能會重複出現屢次,而數組的長度爲 count 的絕對值。

 

>sismember key value

判斷 value 元素是否集合 key 的成員,注意它的時間符合度是O(1),因此他比List的遍歷比較元素是否相等要快不少,並且這是原子操做。

 

二、集合運算

>sdiff key [key ...]

返回全部給定集合的差集(存在第一個集合中但不存在其餘任何一個集合中的成員)。不存在的 key 被視爲空集。

 

>sdiffstore destination key [key ...]

返回全部給定集合的差集,同時將結果保存到 destination 集合,若是 destination 集合已經存在,則將其覆蓋。

 

>sunion key [key ...]

返回全部給定集合的並集。不存在的 key 被視爲空集。

 

>sunionstore destination key [key ...]

返回全部給定集合的並集,同時將結果保存到 destination 集合,若是 destination 集合已經存在,則將其覆蓋。

 

>sinter key [key ...]

返回全部給定集合的交集。不存在的 key 被視爲空集。當給定集合當中有一個空集時,結果也爲空集(根據集合運算定律)。

 

>sinterstore destination key [key ...]

返回全部給定集合的交集,同時將結果保存到 destination 集合,若是 destination 集合已經存在,則將其覆蓋。

 

三、移動

>smove source destination value

原子性操做,將 value 元素從 source 集合移動到 destination 集合。

 

>sscan key cursor [MATCH pattern] [COUNT count]

根據遊標的位置獲取指定的數量的元素。

相關文章
相關標籤/搜索