Redis之Set
一、Redis之Set簡介
1. Set是String類型的無序集合(元素成員唯一)。
2. Set是通過hash表實現的,添加、刪除、查找的復雜度都是O(1)。
3. 每個集合最大成員數為232-1(40多億)個。
二、Redis之Set命令行操作
Sadd:將一個或多個元素加入集合,已經存在集合中的元素則忽略。若集合不存在則先創建,若key不是集合類型則返回錯誤。
Smembers:返回集合中所有成員。
Sismember:判斷指定元素是否是指定集合的成員,是返回1,否則返回0。
Scard:返回集合中元素的數量。
Spop:移除並返回集合中的一個或多個隨機元素。(count不能為負數)
Srandmember:返回集合中的一個或多個隨機成員元素,返回元素的數量和情況由命令中的count參數決定:
1. 如果count為正數,且小於集合基數,那麽命令返回一個包含count個元素的數組,數組中的元素各不相同。
2. 如果count大於等於集合基數,那麽返回整個集合。
3. 如果count為負數,那麽命令返回一個數組,數組中的元素可能會重復出現多次,而數組的長度為count的絕對值。
Srandmember和Spop相似,但Spop將隨機元素從集合中移除並返回,而Srandmember則僅僅返回隨機元素,而不對集合進行任何改動。
Srem:移除集合中指定的一個或多個元素,忽略不存在的元素。
Sscan:叠代集合中的元素。
Smove:將指定成員從一個源集合移動到一個目的集合。相當於兩個操作,將指定元素從源集合中刪除,並加入目的集合中。若源集合不存在或不包含指定元素則不做任何操作。
下面介紹的差集、交集和並集都將使用以下三個集合來示例:
Sdiff:返回所有給定集合之間的差集,不存在的集合視為空集。
Sdiffstore:將所有給定集合之間的差集存儲在指定的目的集合中。若目的集合已存在則覆蓋它。
差集:第一個集合中有,其他集合沒有的元素。
Sinter:返回所有給定集合的交集,不存在的集合視為空集。
Sinterstore:將所有給定集合的交集存儲在指定的目的集合中。若目的集合已存在則覆蓋它。
Sunion:返回所有給定集合的並集,不存在的集合視為空集。
Sunionstore:將所有給定集合的並集存儲在指定的目的集合中。若目的集合已存在則覆蓋它。
Redis之Set