「这是我参与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"
明天继续加油!