基础知识
set中的值是不能重复读的;
1、插入,获取,查看
- 在Set集合中添加值:
SADD KEY MEMBER [MEMBER ......]
- 查看Set集合中的所有值:
SMEMBERS KEY
- 查看值是否在Set集合中:
SISMEMBER KEY MEMBER
127.0.0.1:6379> SADD myset java # set集合中添加值
(integer) 1
127.0.0.1:6379> SADD myset phthon
(integer) 1
127.0.0.1:6379> SADD myset php
(integer) 1
127.0.0.1:6379> KEYS *
1) "myset"
127.0.0.1:6379> SMEMBERS myset # 查看指定set的所有值
1) "php"
2) "phthon"
3) "java"
127.0.0.1:6379> SISMEMBER myset java # 判断某一个值是不是在set集合中!
(integer) 1
127.0.0.1:6379> SISMEMBER myset C++
(integer) 0
127.0.0.1:6379> SADD myset c++ #插入时失败
(integer) 0
2、获取元素个数
- 获取Set的元素个数:
SCARD KEY
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> sadd myset member1
(integer) 1
127.0.0.1:6379> sadd myset member2 member3 member4 member5
(integer) 4
127.0.0.1:6379> SCARD myset # 获取set集合中的内容元素个数!
(integer) 5
3、移除指定内容
- 移除指定元素:
SREM KEY MEMBER [MEMBER ......]
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> sadd myset member1
(integer) 1
127.0.0.1:6379> sadd myset member2 member3 member4 member5
(integer) 4
127.0.0.1:6379> SREM myset member1 # 移除set集合中的指定元素
(integer) 1
127.0.0.1:6379> SMEMBERS myset
1) "member2"
2) "member5"
3) "member4"
4) "member3"
4、随机抽取元素
- 随机抽选元素:
SRANDMEMBER KEY [COUNT]
127.0.0.1:6379> SMEMBERS myset
1) "mem2"
2) "mem4"
3) "mem1"
4) "mem3"
5) "mem5"
127.0.0.1:6379> SRANDMEMBER myset # 随机抽选出一个元素
"mem2"
127.0.0.1:6379> SRANDMEMBER myset
"mem1"
127.0.0.1:6379> SRANDMEMBER myset
"mem3"
127.0.0.1:6379> SRANDMEMBER myset
"mem4"
127.0.0.1:6379> SRANDMEMBER myset
"mem5"
127.0.0.1:6379> SRANDMEMBER myset
"mem3"
127.0.0.1:6379> SRANDMEMBER myset 2 # 随机抽选出指定个数的元素
1) "mem5"
2) "mem3"
127.0.0.1:6379> SRANDMEMBER myset 3
1) "mem2"
2) "mem4"
3) "mem1"
127.0.0.1:6379> SRANDMEMBER myset 2
1) "mem5"
2) "mem2"
5、速记删除元素
- 随机删除元素:
SPOP KEY [COUNT]
127.0.0.1:6379> SMEMBERS myset
1) "mem2"
2) "mem5"
3) "mem4"
4) "mem1"
5) "mem3"
127.0.0.1:6379> SPOP myset # 随机删除一些set集合中的元素!
"mem4"
127.0.0.1:6379> SPOP myset 2
1) "mem5"
2) "mem3"
127.0.0.1:6379> SMEMBERS myset
1) "mem2"
2) "mem1"
6、移动
- 移动元素到新的set集合中:
SMOVE SOURCE DESTINATION MEMBER
127.0.0.1:6379> SMEMBERS myset
1) "m1"
2) "m4"
3) "m3"
4) "m6"
5) "m2"
6) "m5"
127.0.0.1:6379> SMOVE myset newSet m2 # 将一个指定的值,移动到另外一个set集合!
(integer) 1
127.0.0.1:6379> SMOVE myset newSet m2
(integer) 0
127.0.0.1:6379> SMEMBERS myset
1) "m3"
2) "m1"
3) "m6"
4) "m4"
5) "m5"
127.0.0.1:6379> SMEMBERS newSet
1) "m2"
7、集合
数字集合类:
-
差集
SDIFF
-
交集
SINTER
-
并集
SUNION
127.0.0.1:6379> SMEMBERS set1
1) "m3"
2) "m2"
3) "m1"
4) "m4"
5) "m5"
127.0.0.1:6379> SMEMBERS set2
1) "m2"
2) "m7"
3) "m8"
127.0.0.1:6379> SDIFF set1 set2 # 差集
1) "m3"
2) "m1"
3) "m5"
4) "m4"
127.0.0.1:6379> SDIFF set2 set1 # 差集
1) "m7"
2) "m8"
127.0.0.1:6379> SINTER set1 set2 # 交集
1) "m2"
127.0.0.1:6379> SINTER set2 set1 # 交集
1) "m2"
127.0.0.1:6379> SUNION set1 set2 # 并集
1) "m3"
2) "m7"
3) "m1"
4) "m2"
5) "m4"
6) "m5"
7) "m8"
127.0.0.1:6379> SUNION set2 set1 # 并集
1) "m3"
2) "m7"
3) "m1"
4) "m2"
5) "m5"
6) "m4"
7) "m8"
8、总结
微博,A用户将所有关注的人放在一个set集合中!将它的粉丝也放在一个集合中!
共同关注,共同爱好,二度好友,推荐好友!