1.增長/刪除元素redis
SADD key member [member] SREM key member [member]
SADD 命令用來向集合中增長一個或多個元素,若是鍵不存在則會自動建立。由於在一個集合中不能有相同的元素,因此若是要加入的元素已經存在於集合中就會忽略這個元素。本命令的返回值是成功加入的元素數量。code
redis> SADD letters a (integer) 1 redis> SADD letters a b c (integer) 2
第二條SADD命令的返回值爲2是由於元素「a」已經存在,因此實際上只加入了兩個元素。
SREM 命令用來從集合中刪除一個或多個元素,並返回刪除成功的個數。io
redis> SREM letters c d (integer) 1
因爲元素「d」在集合中不存在,因此只刪除了一個元素,返回值爲 1。入門
2.得到集合中的全部元素ember
SMEMBERS key
SMEMBERS 命令會返回集合中的全部元素。集合
redis> SMEMBERS letters 1) "b" 2) "a"
3.判斷元素是否在集合中di
SISMEMBER key member
當值存在時返回1,不存在時返回0。時間
redis> SISMEMBERS letters a (integer) 1 redis> SISMEMBERS letters d (integer) 0
4.集合間運算ant
SDIFF key [key ...] SINTER key [key ...] SUNION key [key ...]
SDIFF 命令用來對多個集合執行差集運算。co
redis> SADD setA 1 2 3 (integer) 3 redis> SADD setB 2 3 4 (integer) 3 redis> SDIFF setA setB 1) "1" redis> SDIFF setB setA 1) "4"
SDIFF 命令支持同時傳入多個鍵
redis> SADD setC 2 3 (integer) 2 redis> SDIFF setA setB setC 1) "1" 計算順序爲:setA - setB 以後的結果 - setC
SINTER 命令用來對多個集合執行交集運算。
redis> SINTER setA setB 1) "2" 2) "3"
SINTER 命令一樣支持同時傳入多個鍵。
redis> SINTER setA setB setC 1) "2" 2) "3"
SUNION 命令用來對多個集合執行並集運算。
redis> SUNION setA setB 1) "1" 2) "2" 3) "3" 4) "4"
SUNION 命令一樣支持多個鍵,這裏就不贅述了。
5.得到集合中元素個數
SCARD key
例如:
redis> SMEMBERS letters 1) "b" 2) "a" redis> SCARD letters (integer) 2
6.進行集合運算並將結果存儲
SDIFFSTORE destination key [key ...] SINTERSTORE destination key [key ...] SUNIONSTORE destination key [key ...]
SDIFFSTORE 命令與 SDIFF命令功能同樣,惟一的區別就是前者不會直接返回運算結果,而是將結果存儲在 destiantion 鍵中。
SDIFFSTORE 命令經常使用於須要進行多步集合運算的場景中,如須要先計算差集再將結果和其餘鍵計算交集。
SINTERSTORE 和 SUNIONSTORE 命令與之相似,再也不贅述。
7.隨機得到集合中的元素
SRANDMEMBER key [count]
SRANDMEMBER 命令用來隨機從集合中獲取一個元素。
redis> SRANDMEMBER letters "a" redis> SRANDMEMBER letters "b" redis> SRANDMEMBER letters "a"
還能夠傳遞count參數來一次隨機得到多個元素,根據count的正負不一樣,具體表現也不一樣。
(1)當count爲正數時,SRANDMEMBER 會隨機從集合裏得到 count 個不重複的元素。若是 count 的值大於集合中的元素個數,則 SRANDMEMBER 會返回集合中的所有元素。
(2)當count爲負數時,SRANDMEMBER 會隨機從集合裏得到|count|個的元素,這些元素都有可能相同。
redis> SADD letters c d (integer) 2 目前letters集合中有 「a」,「b」,「c」,「d」。 redis> SRANDMEMBER letters 2 1) "a" 2) "c" redis> SRANDMEMBER letters 2 1) "a" 2) "b" redis> SRANDMEMBER letters 100 1) "b" 2) "a" 3) "c" 4) "d" redis> SRANDMEMBER letters -2 1) "b" 2) "b" redis> SRANDMEMBER letters -10 1) "b" 2) "b" 3) "a" 4) "c" 5) "b" 6) "a" 7) "b" 8) "d" 9) "b" 10) "b"
8.從集合中彈出一個元素
SPOP key
由於集合是無序的,因此彈出元素也是隨機的。
redis> SPOP letters "b" redis> SMEMBERS letters 1) "a" 2) "c" 3) "d"
整理自《Redis 入門指南第二版》。