1.redis set的介紹redis
集合中的數據是不重複且沒有順序,集合類型和列表類型的對比。spa
集合類型:存儲的是的是最多2的32次方減一個字符串,數據是沒有順序的,可是數據是惟一的code
列表類型:最多存儲內容最多2的32次方減一個字符串,數據是有序的,它的數據不是惟一的。blog
集合類型的經常使用操做是向集合中假如或者刪除元素。判斷某個元素是否存在等,因爲集合類型的Redis內部是使用值爲空的散轉表實現,全部這些操做的時間複雜度都爲o(1);rem
redis還提供了多個集合之間的交集、並集、差集的運算字符串
2.命令:io
(1)增長、刪除元素ast
語法:SADD key member [member ……]class
127.0.0.1:6379> sadd set a b c (integer) 3 127.0.0.1:6379> sadd set a (integer) 0
語法:SREM key member [member……]語法
127.0.0.1:6379> srem set c d (integer) 1
(2)得到集合中的全部元素
語法:SMEMBERS key
smembers key 1) "b" 2) "a」
(3)判斷元素是否在集合中
語法:sismember key member 存在值爲1,不存在值爲0
127.0.0.1:6379> sismember set a (integer) 1 127.0.0.1:6379> sismember set h (integer) 0
(4)運算命令
集合的差集運算A-B,屬於A可是不屬於B
語法:sdiff key [key……]
127.0.0.1:6379> sadd setA 1 2 3 (integer) 3 127.0.0.1:6379> sadd setB 2 3 4 (integer) 3 127.0.0.1:6379> sdiff setA setB 1) "1" 127.0.0.1:6379> sdiff setB setA 1) "4"
集合交集運算,屬於A且屬於B元素構成的集合
語法:sinter key key ……
127.0.0.1:6379> sinter setA setB 1) "2" 2) "3"
集合的並集運算,A和B一塊兒組成的數據
sunion key key ……
127.0.0.1:6379> sunion setA setB 1) "1" 2) "2" 3) "3" 4) "4"
獲取集合的元素個數
語法:scard key
127.0.0.1:6379> scard setA (integer) 3
從集合中彈出一個元素,因爲集合是無序的,全部spop命令會從集合中隨機選擇一個元素彈出
語法:spop key
127.0.0.1:6379> spop setA "1「
127.0.0.1:6379> sadd set a b c
(integer) 3
127.0.0.1:6379> sadd set a
(integer) 0