Set集合类型

HeJin大约 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集合中。将他的粉丝也放在一个集合中。

  • 共同关注
  • 共同爱好
  • 二度好友
  • 推荐好友