Redis教程07(Set集合介绍)

举报
波波烤鸭 发表于 2022/03/30 02:06:36 2022/03/30
【摘要】 上文介绍的list列表是有序集合,可以保存重复记录,在Redis中的Set集合是无序的,不可以存储重复记录的。本文主要介绍Set集合中的常用命令 Redis教程06(List类型命令介绍) ...

上文介绍的list列表是有序集合,可以保存重复记录,在Redis中的Set集合是无序的,不可以存储重复记录的。本文主要介绍Set集合中的常用命令

Redis教程06(List类型命令介绍)

集合中最大的成员数为 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。