Redis教程07(Set集合介绍)
【摘要】
上文介绍的list列表是有序集合,可以保存重复记录,在Redis中的Set集合是无序的,不可以存储重复记录的。本文主要介绍Set集合中的常用命令
Redis教程06(List类型命令介绍)
...
上文介绍的list列表是有序集合,可以保存重复记录,在Redis中的Set集合是无序的,不可以存储重复记录的。本文主要介绍Set集合中的常用命令
集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
命令 | 说明 |
---|---|
sadd | 添加一个或多个元素到集合中,如果集合中存在该元素则忽略 |
scard | 返回集合中的元素的个数 |
sismember | 判断集合中是否含有某元素 |
smembers | 获取集合中的所有的元素 |
srem | 删除集合中指定的元素 |
srandmember | 随机返回集合中的元素,版本2.6后在命令之后可以跟一个count。指定随机返回的元素个数 |
spop | 和srandmember类似,只是spop会将获取的元素移除而srandmember不会移除元素 |
smove | 将元素从一个集合移动到另一个集合中 |
sdiff | 返回两个集合的差集 |
sdiffstore | 和sdiff类似,不同的是会将差集结果保存起来 |
sinter | 获取两个集合的交集 |
sinterstore | 和sinter类似,不同的是将结果保存起来了 |
sunion | 获取两个集合的并集 |
sunionstore | 获取两个集合的并集并保存起来 |
SADD
添加一个或多个元素到集合中,如果集合中存在该元素则忽略
127.0.0.1:6379> sadd stu zhangsan lisi wangwu lisi zhangsan
(integer) 3
- 1
- 2
添加了5个元素,但只成功了3个,因为有两个是相同的。
SCard
返回set集合中元素的个数
127.0.0.1:6379> scard stu
(integer) 3
- 1
- 2
SIsMember
判断集合中是否含有某元素
127.0.0.1:6379> sismember stu zhangsan
(integer) 1 # 含有zhangsan
127.0.0.1:6379> sismember stu zhangsan1
(integer) 0 # 不含有zhangsan1
- 1
- 2
- 3
- 4
SMembers
获取集合中的所有的元素
127.0.0.1:6379> smembers stu
1) "lisi"
2) "zhangsan"
3) "wangwu"
- 1
- 2
- 3
- 4
SRem
删除集合中指定的元素,如果集合中不含有该元素,则忽略,返回0
127.0.0.1:6379> srem stu lisi
(integer) 1
127.0.0.1:6379> srem stu aa
(integer) 0 # 集合中不含有 aa 返回0
127.0.0.1:6379> smembers stu
1) "zhangsan"
2) "wangwu"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
SRandMember
随机返回集合中的元素,redis2.6之后可以在命令后加一个count参数,指定随机返回的元素的个数,如果count大于集合中的个数,则返回所有的元素。负数的话取绝对值
127.0.0.1:6379> srandmember stu
"zhangsan" # 取一个随机值
127.0.0.1:6379> srandmember stu
"bobo"
127.0.0.1:6379> srandmember stu
"dpb"
127.0.0.1:6379> srandmember stu 3
1) "bobo" #取三个随机值
2) "dpb"
3) "wangwu"
127.0.0.1:6379> srandmember stu 3
1) "bobo"
2) "dpb"
3) "lisi"
127.0.0.1:6379> srandmember stu 100
1) "lisi" # 大于总的个数,去所有值
2) "dpb"
3) "bobo"
4) "zhangsan"
5) "wangwu"
127.0.0.1:6379> srandmember stu -2
1) "dpb" # 负数取绝对值 两个
2) "zhangsan"
127.0.0.1:6379> srandmember stu -2
1) "lisi"
2) "dpb"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
Spop
和srandmember类似,只是spop会将获取的元素移除而srandmember不会移除元素|
127.0.0.1:6379> smembers stu
1) "bobo"
2) "zhangsan"
3) "dpb"
4) "lisi"
5) "wangwu"
127.0.0.1:6379> spop stu 2
1) "zhangsan" # 随机获取两个元素并移除
2) "dpb"
127.0.0.1:6379> smembers stu
1) "bobo"
2) "lisi"
3) "wangwu"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
SMove
将元素从一个集合移动到另一个集合中
127.0.0.1:6379> smembers stu
1) "bobo"
2) "lisi"
3) "wangwu"
127.0.0.1:6379>
127.0.0.1:6379> smove stu stu1 bobo
(integer) 1
127.0.0.1:6379> smembers stu
1) "lisi"
2) "wangwu"
127.0.0.1:6379> smembers stu1
1) "bobo"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
SDiff
返回两个集合的差集
127.0.0.1:6379> smembers stu
1) "lisi"
2) "wangwu"
127.0.0.1:6379> smembers stu1
1) "bobo"
127.0.0.1:6379> sdiff stu stu1
1) "lisi"
2) "wangwu"
127.0.0.1:6379> sdiff stu1 stu
1) "bobo"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
SDiffStore
和sdiff类似,不同的是会将差集结果保存起来
127.0.0.1:6379> sdiffstore stu2 stu1 stu
(integer) 1
127.0.0.1:6379> smembers stu2
1) "bobo"
- 1
- 2
- 3
- 4
SInter
获取两个集合的交集
127.0.0.1:6379> smembers stu
1) "lisi"
2) "wangwu"
127.0.0.1:6379> smembers stu2
1) "lisi"
2) "bobo"
127.0.0.1:6379> sinter stu stu2
1) "lisi" #两个集合中都有lisi
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
SInterStore
获取两个集合的交接并将结果保存起来了。
127.0.0.1:6379> sinterstore stu3 stu stu2
(integer) 1
127.0.0.1:6379> smembers stu3
1) "lisi"
- 1
- 2
- 3
- 4
SUnion
获取两个集合的并集。
127.0.0.1:6379> sunion stu stu2
1) "bobo"
2) "lisi"
3) "wangwu"
- 1
- 2
- 3
- 4
SunionStore
获取两个集合的并集并保存起来
127.0.0.1:6379> sunionstore stu3 stu stu2
(integer) 3
127.0.0.1:6379> smembers stu3
1) "bobo"
2) "lisi"
3) "wangwu"
- 1
- 2
- 3
- 4
- 5
- 6
~好了本文到此为止
更多资料欢迎参考官网手册
文章来源: dpb-bobokaoya-sm.blog.csdn.net,作者:波波烤鸭,版权归原作者所有,如需转载,请联系作者。
原文链接:dpb-bobokaoya-sm.blog.csdn.net/article/details/87095337
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)