Redis之Set
1 Set
Set(里面的元素不可以重复)
1.1 sadd
添加元素到key中(相同的只会加一个)
sadd k1 a a a
(integer) 1
1.2 smembers
获取一个key下的所有元素
smembers k1
1) "a"
1.3 srem
key中移除指定的元素
smembers k1
1) "c"
2) "a"
3) "d"
4) "b"
5) "f"
127.0.0.1:6379> srem k1 a
(integer) 1
127.0.0.1:6379> smembers k1
1) "d"
2) "b"
3) "c"
4) "f"
1.4 sismember
返回某一个成员是否在集合中(1表示在,0表示不再集合中)
127.0.0.1:6379> sismember k1 a
(integer) 0
127.0.0.1:6379> sismember k1 d
(integer) 1
1.5 scard
返回集合里面元素的数量
scard k1
1.6 srandmember
随机返回一个元素(后面不加,默认返回一个,加的话按加的数字随机返回多少个)
127.0.0.1:6379> srandmember k1
"f"
127.0.0.1:6379> srandmember k1
"c"
127.0.0.1:6379> srandmember k1 2
1) "f"
2) "d"
1.7 spop
随机返回并且出栈一个元素(默认1个,后面可以加数字,出了就没了)
spop k1
1.8 smove
把一个元素从一个集合移到另一个集合中去
127.0.0.1:6379> smembers k1
1) "b"
2) "d"
127.0.0.1:6379> smove k1 k2 b
(integer) 1
127.0.0.1:6379> smembers k1
1) "d"
127.0.0.1:6379> smembers k2
1) "b"
1.9 sdiff
返回两个集合的差集(以前面的为准)
127.0.0.1:6379> sdiff k1 k2 //(从k1里面除去k2的元素)
1) "d"
127.0.0.1:6379> sdiff k2 k1//(从k2里面除去k1的元素)
1) "b"
1.10 sdiffstore
类似于sdiff,不同的是,计算出来的结果会保存在一个新的集合中(k3为保存集合的地方,k1,k2为比较)
127.0.0.1:6379> sdiffstore k3 k1 k2
(integer) 3
127.0.0.1:6379> smembers k3
1) "c"
2) "a"
3) "d"
1.11 sinter
返回两个集合的交集
sinter k1 k2
1.12 sinterstore
类似于sinter,不同的是,计算出来的交集会保存在一个新的集合中
127.0.0.1:6379> sinterstore k4 k1 k2
(integer) 1
127.0.0.1:6379> smembers k4
1) "b"
1.13 sunion
求并集
sunion k1 k2
1.14 sunionstore
求并集,并且把集合保存到新的集合中
sunion k4 k1 k2