学习Redis,day6 Redis的Set操作~

61 阅读2分钟

「这是我参与2022首次更文挑战的第6天,活动详情查看:2022首次更文挑战

Redis的Set操作

Set(集合)

set中的值是不能重读的!(值不能重复)

1、向集合中添加值SADD SetName value

2、查看集合中的所有元素SMEMBERS SetName

3、判断该元素是否在集合中SISMEMBER SetName 要判断的值

4、随机选出集合中的一个元素SRANDMEMBER SetName 数量

  • 说明:默认数量为1。

5、随机弹出指定集合中的元素并删除SPOP SetName

6、移动集合中元素到另一个集合SMOVE SetName1 SetName2 移动的元素

7、查看两个集合之间的交集SINTER SetName1 SetName2

8、查看两个集合之间的并集SUNION SetName1 SetName2

9、查看两个集合之间的差集SDIFF SetName1 SetName2

通过此操作可以对许多数据做对应的处理操作。

例如:微博,B站,公众号,共同关注;既可以通过交集来实现。

数字集合类:

  • 差集 SDIFF
  • 交集 SINTER
  • 并集 SUNION

基本命令操作示例:

127.0.0.1:6379> sadd myset hello		#向集合中添加值
(integer) 1
127.0.0.1:6379> sadd myset hello1
(integer) 1
127.0.0.1:6379> sadd myset hello2
(integer) 1
127.0.0.1:6379> sadd myset hello3
(integer) 1
127.0.0.1:6379> SMEMBERS myset			#查看集合中的所有元素
1) "hello"
2) "hello3"
3) "hello2"
4) "hello1"
127.0.0.1:6379> SISMEMBER myset hello	#判断该元素是否在集合中
(integer) 1ogfu
127.0.0.1:6379> SISMEMBER myset hello5
(integer) 0
127.0.0.1:6379> SMEMBERS myset		#查看集合中的所有元素
1) "hello"
2) "hello3"
3) "hello2"
4) "hello1"
127.0.0.1:6379> SRANDMEMBER myset	#随机选出集合中的一个元素
"hello1"
127.0.0.1:6379> SRANDMEMBER myset
"hello3"
127.0.0.1:6379> SRANDMEMBER myset
"hello2"
127.0.0.1:6379> SRANDMEMBER myset 2	#随机选出集合中指定个数的元素
1) "hello3"
2) "hello1"
127.0.0.1:6379> SPOP myset		#随机弹出集合中的元素并删除
"hello"
127.0.0.1:6379> SPOP myset
"hello2"
127.0.0.1:6379> SMEMBERS myset
1) "hello3"
2) "hello1"
127.0.0.1:6379> SMOVE myset myset2 hello1	#将myset中的hello1移动到myset2中
(integer) 1
127.0.0.1:6379> SMEMBERS myset
1) "hello3"
127.0.0.1:6379> SMEMBERS myset2
1) "hello1"
127.0.0.1:6379> SMEMBERS key1		#查看指定集合中的元素
1) "b"
2) "a"
127.0.0.1:6379> SMEMBERS key2
1) "e"
3) "c"
127.0.0.1:6379> SDIFF key1 key2		#查看集合之间的差集(key1-key2)
1) "a"
2) "b"
127.0.0.1:6379> SDIFF key2 key1
2) "e"
127.0.0.1:6379> SINTER key1 key2	#查看集合之间的交集
1) "c"
127.0.0.1:6379> SUNION key1 key2	#查看集合之间的并集
1) "c"
2) "d"

明天继续加油!