Set集合类型
大约 2 分钟数据库技术Redis
set中的值是不能重复的。
##########################################################################
# 1、存值取值
127.0.0.1:6379> sadd myset hello # set集合中添加元素
(integer) 1
127.0.0.1:6379> sadd myset hejin'
Invalid argument(s)
127.0.0.1:6379> sadd myset hejin
(integer) 1
127.0.0.1:6379> sadd myset "love hejin"
(integer) 1
127.0.0.1:6379> smembers myset # 查看指定set的所有值
1) "hello"
2) "hejin"
3) "love hejin"
127.0.0.1:6379> SISMEMBER myset hello # 判断某个值是否在set中
(integer) 1
127.0.0.1:6379> SISMEMBER myset world
(integer) 0
##########################################################################
# 2、获取个数
127.0.0.1:6379> scard myset # 获取set集合中元素的个数
(integer) 4
##########################################################################
# 3、移除元素
127.0.0.1:6379> srem myset hello # 移除set集合中的某个元素
(integer) 1
127.0.0.1:6379> smembers myset
1) "hellohejin"
2) "hejin"
3) "love hejin
##########################################################################
# 4、set 无序不重复。抽随机。
127.0.0.1:6379> SRANDMEMBER myset # 随机抽选出一个元素
"hejin"
127.0.0.1:6379> SRANDMEMBER myset
"hellohejin"
127.0.0.1:6379> SRANDMEMBER myset
"hejin"
127.0.0.1:6379> SRANDMEMBER myset
"hellohejin"
127.0.0.1:6379> SRANDMEMBER myset
"love hejin"
127.0.0.1:6379> SRANDMEMBER myset
"love hejin"
127.0.0.1:6379> SRANDMEMBER myset
"love hejin"
127.0.0.1:6379> SRANDMEMBER myset
"hellohejin"
127.0.0.1:6379> SRANDMEMBER myset 2 # 随机抽选出指定个数的元素
1) "hejin"
2) "love hejin"
##########################################################################
# 5、随机删除元素
127.0.0.1:6379> SMEMBERS myset
1) "hellohejin"
2) "hejin"
3) "love hejin"
127.0.0.1:6379> spop myset # 随机删除set集合中的元素
"hellohejin"
127.0.0.1:6379> spop myset
"hejin"
127.0.0.1:6379> SMEMBERS myset
1) "love hejin"
##########################################################################
# 6、将一个指定的值,移动到另一个set集合
127.0.0.1:6379> sadd myset hejin
(integer) 1
127.0.0.1:6379> sadd myset2 set2
(integer) 1
127.0.0.1:6379> keys *
1) "myset"
2) "myset2"
127.0.0.1:6379> SMOVE myset myset2 hejin # 将一个指定的值,移动到另一个set集合
(integer) 1
127.0.0.1:6379> SMEMBERS myset
(empty array)
127.0.0.1:6379> SMEMBERS myset2
1) "hejin"
2) "set2"
##########################################################################
# 7、交集、差集、并集
# 微博、B站,共同关注
127.0.0.1:6379> SDIFF key1 key2 # 差集
1) "a"
2) "b"
127.0.0.1:6379> SINTER key1 key2 # 交集 共同好友就可以这样实现
1) "c"
127.0.0.1:6379> SUNION key1 key2 # 并集
1) "a"
2) "b"
3) "c"
4) "e"
5) "d"
微博,A用户将所有关注的人放在一个set集合中。将他的粉丝也放在一个集合中。
- 共同关注
- 共同爱好
- 二度好友
- 推荐好友