Redis(7)五大数据类型——Set(集合)

基础知识

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集合中!将它的粉丝也放在一个集合中!

共同关注,共同爱好,二度好友,推荐好友!

猜你喜欢

转载自blog.csdn.net/weixin_48560325/article/details/126414900
今日推荐