Set类型是一个没有排序的集合,可以在该类型那个执行添加、删除或判断某一元素是否存在等操作。由于Redis的内部是使用值为空的hash table实现的,所以操作的时间复杂度为O(1), 最多存储2^32-1个字符串。


Set集合中不允许出现重复的元素,和List类型相比,Set类型在功能上另一个优势是可以进行并集,交集,差集运算。


sadd

129.223.248.154:6379> sadd students tim
(integer) 1
129.223.248.154:6379> sadd students tim ben
(integer) 1


srem

129.223.248.154:6379> srem student tim
(integer) 0
129.223.248.154:6379> srem students tim
(integer) 1


smembers、sismember

129.223.248.154:6379> smembers students
1) "ben"
129.223.248.154:6379> sismember students ben
(integer) 1
129.223.248.154:6379> sismember students tim
(integer) 0


sdiff 差集

129.223.248.154:6379> sadd setDiffA 1 2 3
(integer) 3
129.223.248.154:6379> sadd setDiffB 2 3 4
(integer) 3
129.223.248.154:6379> 
sdiff 
setDiffA setDiffB
1) "1"


sinter 交集

129.223.248.154:6379> sadd setInterA 1 2 3
(integer) 3
129.223.248.154:6379> sadd setInterB 2 3 4
(integer) 3
129.223.248.154:6379> 
sinter 
setInterA setInterB
1) "2"
2) "3"


sunion 并集

129.223.248.154:6379> sadd setUnionA 1 2 3
(integer) 3
129.223.248.154:6379> sadd setUnionB 2 4 6
(integer) 3
129.223.248.154:6379> 
sunion 
setUnionA setUnionB
1) "1"
2) "2"
3) "3"
4) "4"
5) "6"


scard 集合总数

129.223.248.154:6379> 
scard 
students
(integer) 1
129.223.248.154:6379> smembers students
1) "ben"
129.223.248.154:6379> srandmember students
"ben"
129.223.248.154:6379> sadd students mike
(integer) 1
129.223.248.154:6379> srandmember students
"ben"
129.223.248.154:6379> srandmember students
"mike"
129.223.248.154:6379> srandmember students
"mike"
129.223.248.154:6379> sadd memebrs a b c
(integer) 3
129.223.248.154:6379> srandmember students 2
1) "ben"
2) "mike"


srandmember

129.223.248.154:6379> sadd letters a b c
(integer) 3
129.223.248.154:6379> 
srandmember 
letters 2
1) "b"
2) "c"


spop

129.223.248.154:6379> spop letters
"b"
129.223.248.154:6379> smembers letters
1) "a"
2) "c"
129.223.248.154:6379>