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]
根據遊標的位置獲取指定的數量的元素。