

























添加元素到set中,不能重复添加
127.0.0.1:6379> sadd set1 a b c d e f g
(integer) 7
127.0.0.1:6379> sadd set2 a a a b b b c c c
(integer) 3
查看set中所有元素
127.0.0.1:6379> SMEMBERS set1
1) "a"
2) "g"
3) "c"
4) "f"
5) "d"
6) "e"
7) "b"
127.0.0.1:6379> SMEMBERS set2
1) "a"
2) "c"
3) "b"
判断set中是否有某个元素
127.0.0.1:6379> SISMEMBER set2 a
(integer) 1
127.0.0.1:6379> SISMEMBER set2 d
(integer) 0
从set 中移除元素
127.0.0.1:6379> SMEMBERS set1
1) "a"
2) "g"
3) "c"
4) "f"
5) "d"
6) "e"
7) "b"
127.0.0.1:6379> srem set1 g
(integer) 1
127.0.0.1:6379> SMEMBERS set1
1) "a"
2) "c"
3) "f"
4) "d"
5) "e"
6) "b"
set中元素个数
127.0.0.1:6379> SCARD set1
(integer) 6
从set中随机选择n个元素(不会删除)
SRANDMEMBER key n例:
127.0.0.1:6379> SMEMBERS set1
1) "a"
2) "c"
3) "f"
4) "d"
5) "e"
6) "b"
127.0.0.1:6379> SRANDMEMBER set1 2
1) "f"
2) "e"
127.0.0.1:6379> SRANDMEMBER set1 2
1) "a"
2) "e"
从set中随机弹出(删除)n个元素
SPOP key n例:
127.0.0.1:6379> SMEMBERS set1
1) "a"
2) "c"
3) "f"
4) "d"
5) "e"
6) "b"
127.0.0.1:6379> SPOP set1 2
1) "c"
2) "a"
127.0.0.1:6379> SPOP set1 2
1) "b"
2) "f"
127.0.0.1:6379> SPOP set1 2
1) "d"
2) "e"
127.0.0.1:6379> SPOP set1 2
(empty list or set)
将set1中的v移动到set2中去
smove key key value例:
127.0.0.1:6379> sadd set1 1 2 3
(integer) 3
127.0.0.1:6379> sadd set2 a b c
(integer) 3
127.0.0.1:6379> smove set1 set2 2
(integer) 1
127.0.0.1:6379> SMEMBERS set1
1) "1"
2) "3"
127.0.0.1:6379> SMEMBERS set2
1) "a"
2) "2"
3) "c"
4) "b"
127.0.0.1:6379> smembers set3
1) "1"
2) "c"
3) "b"
4) "a"
5) "2"
6) "3"
127.0.0.1:6379> smembers set4
1) "c"
2) "b"
3) "2"
4) "5"
5) "4"
6) "d"
7) "3"
1.差集运算
set3-set4:set3有set4没有
127.0.0.1:6379> sdiff
1) "a"
2) "1"
2.并集运算
语法
sunion key key [key ......] 例:
127.0.0.1:6379> sunion set3 set4
1) "c"
2) "4"
3) "5"
4) "1"
5) "3"
6) "b"
7) "a"
8) "2"
9) "d"
3.交集运算
sinter,同时属于几个集合的公共部分
sinter key key [key ...] 例:
127.0.0.1:6379> sinter set3 set4
1) "c"
2) "b"
3) "2"
4) "3"
SINTERCARD,redis7新命令,不返回结果集,只返回结果的基数,返回由所有给定集合的交集产生的集合的基数
SINTERCARD numkeys key [key ...] [LIMIT limit]例:2个集合,set3和set4,交集中共有4个元素,可以限制返回的个数,但是不能超过元素的总个数
127.0.0.1:6379> SINTERCARD 2 set3 set4
(integer) 4
127.0.0.1:6379> SINTERCARD 2 set3 set4 limit 1
(integer) 1
127.0.0.1:6379> SINTERCARD 2 set3 set4 limit 2
(integer) 2
127.0.0.1:6379> SINTERCARD 2 set3 set4 limit 3
(integer) 3
127.0.0.1:6379> SINTERCARD 2 set3 set4 limit 4
(integer) 4
127.0.0.1:6379> SINTERCARD 2 set3 set4 limit 5
(integer) 4
Set集合的使用场景很多,例如:
可能认识的人或共同感兴趣的话题,商品
sdiff a b
sdiff b a
年会抽奖活动
sadd 活动key 用户ID:参与抽奖
scard 活动key:统计参加总人数
SRANDMEMBER 活动key n:抽取n个幸运的人,这几个人还能继续抽奖
spop 活动key n:抽取n个幸运的人,这几个人不能继续抽奖
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。